1. Field of the Invention
This invention relates generally to network messaging applications and, more specifically, to correlating messages received in network messaging applications.
2. Description of Related Art
Messaging applications are the “killer apps” for networked devices. Mobile phone networks have traditionally been limited to voice communications, but new technologies such as GSM (Global System for Mobile Communications) have enabled mobile phone networks to also include data communications. For example, SMS (Short Message Service) messaging provides a software-independent protocol to send short text messages composed of either: 160-7 bit characters; 70-16 bit characters; or 140 octets of binary data. Individual SMS messages thus require a relatively small network bandwidth and devices can receive messages, even when connected to a voice call. The number of SMS messages a user receives has continually increased because many new types of network devices have joined mobile phone networks. These devices include, for example, PDAs, hybrid PDA/mobile phone devices, and other text messaging devices using GSM networks. An inherent limitation of the small SMS packet size is that neither previous messages nor subject lines are included within a current SMS message.
Because there is no inherent linking information (e.g., subject line or application session tags) in SMS messages, they are displayed as discrete interchanges without the context of related SMS messages. A user exchanging SMS messages with multiple other users can thus quickly lose track of the multiple conversations. Moreover, messages identified by phone numbers add a level of confusion. Consider a situation where User A sends a message to User B—“What time shall we meet?”—and also to User C—“How many times?” A response message of “3” identified only by the sender's phone number may leave User A wondering whether the message was from User B or from User C.
A similar problem can arise when exchanging multiple messages with a single user. Because SMS messages are held while a mobile device is not reachable, User A may not receive User B's response to a message for hours or even days. The entire conversation topic can thus span hours or days. Without the context of previous messages, User B's response may leave User A wondering what question is being answered or how the conversation started.
What is needed is a robust messaging application that solves the above constraints of mobile devices and the inherent shortcomings of their communication protocols. Furthermore, the messaging application should determine which messages to thread despite the above problems.
The present invention determines which messages to display to a user as a message thread. In one embodiment, an SMS device receives and stores numerous SMS messages transported through an SMS network. SMS messages do not contain any explicit linking or relationship between the messages. Thus the SMS device must apply threading rules to determine whether to thread SMS messages by identifying implicit links. A threading engine generates an SMS message thread by applying threading rules from the outgoing SMS message rules for outgoing messages and from the incoming SMS message rules for incoming messages. An SMS application, operating independently from the threading engine, displays SMS message threads to the user.
One embodiment of the threading engine identifies related messages from implicit links between messages from a unique identifier native to SMS data packets, such as a source or destination address. The unique identifier is independent of an SMS application, or instantiations of the SMS application. In another embodiment, the SMS application assigns an application identifier to an identified message thread. As such, the source and destination SMS applications, and instantiations of the same, are capable of further communications.
In another embodiment, the threading engine applies threading rules to correlate current messages with previous messages. The threading engine appends the current message to an active thread when available. If not, the threading engine generates an SMS thread having the previous and current messages in a hierarchy according to relationships between the messages. For example, the hierarchy may represent the order of arrival of included messages, who sent each message, and/or which messages are replies to others.
In yet another embodiment, the threading rules database is organized according to outgoing message rules and incoming message rules. In another embodiment, the threading rules database is organized by interrelated set of message inclusion rules, message hierarchy rules, message formatting rules, and thread management rules. The threading rules may be predetermined and/or dynamically updated according to user configurations.
In still another embodiment, the user interface displays an icon to indicate message threads. In another embodiment, the user interface displays an expanded message thread representing message hierarchy. In yet another embodiment, the user interface displays a drop-down menu to list active threads.
The present invention determines which messages to display in a message thread to a user. A “thread,” as used herein, refers to a set of correlated messages. The threads are displayed to show current incoming or outgoing messages and their relationship to previous messages.
It will be understood by one of ordinary skill in the art that although the described embodiment uses an SMS messaging, the invention may also be applied to MMS (Multimedia Messaging Service), EMS (Enhanced Messaging Service), or any data protocol capable of encapsulating messages for transport between networked devices. Also, the terms “SMS messages” and “messages” are used interchangeably herein. Additionally, the terms “outgoing” and “sent” messages are used interchangeably herein, as are the terms “incoming” and “received.”
The SMS message database 410 persistently stores incoming and outgoing SMS messages. Incoming messages are received from other SMS devices. Outgoing messages are entered into the electronic communication device by the user. The SMS message database 410 stores messages until a corresponding memory is full, a maximum number of messages has been reached, a time period has passed, or the like. If the SMS device is powered down, and then powered up again, the messages are still available for correlating into threads. By contrast, prior art systems without persistent memory are not able to recover message threads after powering down, resetting, or the like. In one embodiment, unthreaded messages are stored in format as shown in
The threading rules database 420 stores rules that characterize relationships between incoming and outgoing messages stored in the SMS message database 410.
The outgoing SMS message rules 510 are applied to messages sent from the electronic communication device to determine its relationship to previous messages. Example categories of threading rules include rules that determine: thread association; the type of thread in which to include the message; previous messages to include in the thread; and thread hierarchy. One rule always threads outgoing messages sent in reply to incoming messages. Another rule only thread outgoing messages sent to devices listed in the phone book. Yet another ensures that messages older than, for example, an hour or a week, are not threaded. Also, if the last message is older than a predetermined time, a new messages are included in a new thread.
The incoming SMS message rules 520 are applied to messages received to the electronic communication device to determine its relationship to previous messages. For example, one rule limits unsolicited threads by only threading incoming messages from known users, or that are verified by the device user. A similar rule does not thread messages that originate from known spammers or commercial entities. Other do not thread rules relate to special addresses that, although are from a common source, are not desirable for threading. For example, rules detect and exclude voicemail notifications and numerical pages from a database of special addresses. Another rule attempts to thread incoming messages sent in reply to outgoing messages by assuming that any incoming message received from the destination of an outgoing message within a time limit, such as 15 minutes, is a reply. It will be understood by one of ordinary skill in the art that the outgoing and incoming threading rules 510, 520 are provided solely for the purpose of illustration and that other rules may also be included without departing from the spirit of the invention.
In
The SMS application 440 displays threads in a user interface and receives messages input by a user. The SMS application 440 displays a SMS messages thread icon responsive to receiving an indication that the message belongs to a thread as shown in
The SMS application 440 may perform additional analysis on the message thread. In one embodiment, the SMS application 440 initiates a ring-tone when receiving an incoming message included in an SMS thread. In another embodiment, the SMS application 440 determines format of the message text. In yet another embodiment, the SMS application 440 receives display formats from the threading engine 430. For example, the threading engine 430 indicates separate display formats for incoming and outgoing messages, outgoing messages in progress, or otherwise.
The SMS application 440 is, for example, a network browser to view remotely stored SMS threads, an application dedicated to SMS threading, or any other messaging application that configured to send and/or receive messages (SMS and/or other types of messages) according to the present invention. In one embodiment a sending SMS application 440 is different from a receiving SMS application 440. The threading engine 430 thus threads messages independently and outputs its results through an application programming interface. Methods related to the SMS application 440 are described in more detail below.
The threading module 400 identifies 720 the receiver of the outgoing message from, for example, a “To”, “Cc”, or “Bcc” field in the user interface, the SMS packet's destination address 820, or as indicated by the SMS message database 410. In one embodiment, a first identifier is the identified receiver as indicated by the receiver's name, phone number, SMS address, group affiliation, or other unique identifier. In another embodiment, a second identifier is associated with two or more first identifiers. One example of a second identifier is a phone book contact with two phone numbers, each phone number constituting a first identifier. Based on the specific implementation, two SMS threads can be generated based on the first and second phone numbers, or a single SMS thread can be generated based on the phone book contact.
The threading engine 930 correlates 730 the outgoing message with previous messages according to threading rules and outputs the resulting thread to the SMS application 440 as shown below in
The SMS application 440 displays 940 the resulting SMS thread in a user interface. In one embodiment, the SMS application 440 displays 940 the thread while the outgoing message is being entered. For instance, if a user selects a reply icon, the threading module 400 may assume that the current message will be sent to the same entity that the replied to message was received from and include that outgoing message in the same thread. In another embodiment, the SMS application 440 displays 940 threads after the message has been sent. The threading module 400 may also display 740 threads in circumstances other than receiving an incoming or outgoing message such as in response to selecting a user from the phone book.
In one embodiment, displaying 740 comprises a thread icon in an interface having other types of text and associated icons as shown in
The electronic communication device sends 950 the outgoing message as shown below in
If there is no an active thread, the threading engine 430 determines 1020 whether there are previous SMS messages sent to or received from the receiver. Accordingly, the threading engine 430 checks the SMS message database 254 to identify previous messages based on either the first or second identifier. If there are previous messages, the threading engine 430 generates 1040 an SMS thread including the outgoing message and related messages as shown in
The threading engine 430 determines 1110 whether the outgoing message is a reply message to an incoming message. If so, the threading engine 430 continues by sorting 1120 the previous SMS messages in chronological order. In one embodiment, order of arrival to the electronic communication device determines the chronological order. In another embodiment, a time stamp at dispatch from an SMSC or sending electronic communication device determines the chronological order. In one embodiment, if the outgoing message is not a reply message, the process ends 1115.
The threading engine 430 filters 1130 expired SMS messages so that they are not included in the thread. Message expiration is determined by age, how many intervening messages have been received, or otherwise. In one embodiment, the threading engine 430 indicates 1140 whether previous SMS messages were sent or received so that the SMS application 440 can use different display formats in it's user interface. In one embodiment, the threading engine 430 updates 1150 the list of active threads 800 for faster processing of future messages.
The threading module 400 identifies 1320 the sender of the incoming message from a source address 810 in the SMS packet or as indicated by the SMS message database 410. As with an outgoing message, identifying 1320 may be based on a unique first or second identifier.
The threading engine 430 correlates 1230 the incoming message with previous messages according to incoming SMS message rules and outputs the resulting thread to the SMS application 440. An advantage of having separate incoming and outgoing rule sets is that the incoming rule set can be configured to contain more restrictions than outgoing threading to prevent unnecessary and unsolicited message threads. The SMS application 440 displays 1240 the SMS thread to the user as described above.
If there is no an active thread, the threading engine 430 determines 1320 whether there are previous SMS messages with the sender. Accordingly, the threading engine 430 checks the SMS message database 410 to identify previous messages based on either the first or second identifier. If there are previous messages, the threading engine 430 generates 1340 an SMS thread including the incoming message and related messages as described. If there are no previous messages with the sender, the process ends 1325
In one embodiment, the threading engine 430 determines 1510 whether the sender is a non-threaded sender. If the sender is a non-threaded sender, the process ends 1415. If the sender is not a non-threaded sender, the threading engine 430 determines 1420 whether a previous outgoing message was sent to the sender. If a previous outgoing message was not sent to the sender, the process ends 1415.
If a message was sent to the sender, the threading engine 430 sorts 1440 the previous SMS messages in chronological order as described. In one embodiment, the threading engine 430 then filters 1450 expired SMS messages and updates 1470 the list of active threads 800.
The transceiver 1510 provides the transmission and reception of signals carrying SMS messages in SMS data packets 600 through a carrier frequency. The transceiver 1510 may be an RF (Radio Frequency), a Bluetooth, an IEEE 802.11-type, a USB (Universal Serial Bus) or an IEEE 1394-type transceiver, or any other transceiver capable of transmitting and receiving signals carrying SMS messages.
The SIM card 1520 provides user account information to log on to a carrier server. Responsive to an event such as power-up or reset, the SIM card 1520 securely provides user profile information for access to the carrier server. The SIM card 1520 may be a compact flash or other type of memory capable of storing a user profile.
The processor 1530 executes instructions and manipulates data necessary for SMS message threading. The processor 1530 may be a microprocessor such as an ARM processor by ARM, Inc., a Pentium 4® by Intel Corp. or an Athlon XP® by Advanced Micro Devices, an ASIC, a FPD (Field Programmable Device), a microcontroller, or any other device capable of executing instructions and manipulating data. In an embodiment, the processor 1530, comprises a host processor 1532 and a radio processor 1534. The host processor 1532 then executes instructions and manipulates data while the radio processor 1534 communicates with transceiver 1510. Thus, the host processor 1532 can enter into a powered-down, or “sleep,” mode to conserve power while the radio processor 1534 continues to operate, allowing transmission and receipt of signals carrying SMS messages in SMS data packets 600.
Referring now to
In the system of
RESET/ON-OFF (ON/OFF, RADIO_RESET˜, RESET_OUT˜)
ON/OFF—This active high input signal turns radio processor 1534 on and off. A high level on this pin will turn on radio processor 1534 and boot host processor 1532. A low level on this pin will force radio processor 1534 off immediately, rather than into a graceful shutdown. The graceful shutdown will be accomplished via a software command before the ON/OFF pin is driven low.
RADIO_RESET˜—The active low input pin is the master reset for radio processor 1534. This pin will need to be driven low and then high in order to accomplish a full radio reset.
RESET_OUT˜—This signal is an output from a CDMA radio processor 1534, and indicates that CDMA radio processor 1534 is in RESET and requires initialization.
HANDSHAKE (HOST_WAKE, RADIO_WAKE, HOST_STATUS)
HOST_WAKE—Radio processor 1534 drives this active high signal to host processor 1532 when it wants to wake up host processor 1532 to send a message. In addition, when host processor 1532 wakes up radio processor 1534 this signal is used to acknowledge the RADIO_WAKE signal from host processor 1532. This signal should remain high as long as messages are pending from radio processor 1534 or as long as host processor 1532 has requested radio processor 1534 to be turned on.
RADIO_WAKE—Host processor 1532 drives this active high signal to radio processor 1534 when it wants to wake up radio processor 1534 to send a message. In addition, when radio processor 1534 wakes up host processor 1532 this signal is used to acknowledge the HOST_WAKE signal from radio processor 1534. This signal should remain high as long as messages are pending from host processor 1532 or as long as radio processor 1534 has requested host processor 1532 to be turned on.
HOST_STATUS—This signal is used to inform radio processor 1534 of the sleep status of host processor 1532. When this signal is low, host processor 1532 is asleep, and radio processor 1534 should not send low-priority messages. When the signal is high, host processor 1532 is awake, and radio processor 1534 is free to send message of any priority to host processor 1532.
POWER SUPPLY (VCC_RADIO, VCC_BB, BVATT, GROUND)
VCC_RADIO—This signal is provided by radio processor 1534 and is connected to the I/O voltage of the baseband IC. It will be used by the Duo board to determine when the baseband chip has been powered up and to supply voltage to any interface circuitry, if required.
VCC_BB—This is a power input to radio processor 1534 to be used to derive the various baseband voltages. Rather than use a higher voltage VBATT, this input is a lower voltage (3.2 V typically) to allow for better power efficiency.
VBATT—This is main battery voltage of the system, ranging from approximately 3.4 to 4.2 volts.
GROUND—This is the main ground connection in the system. 4 pins are used for power return, and 2 are used for signal ground.
Handshaking functions can be provided in any of a variety of methods. Exemplary methods are set forth below:
Power On—GSM
1. User powers on device 10.
2. VDDS_OUT is asserted. Host processor 1532 cannot assert MODULE_WAKE until VDSS_OUT is high, in this exemplary embodiment.
3. Radio processor 1534 will come out of reset about 5 ms after VDDS_OUT is high. Radio processor 1534 will then drive HOST_WAKE after initialization is complete and it sees MODULE_WAKE.
4. Radio processor 1534 sends message to host processor 1532 (1st message sent by the modem) to indicate that radio processor 1534 is powered up.
Power On—CDMA
1. User powers on the module.
2. VDDS_OUT is asserted. Host processor 1532 cannot assert MODULE_WAKE until VDDS_OUT is high, in this exemplary embodiment.
3. Radio processor 1534 will come out of reset about 5 ms after VDDS_OUT is high. Radio processor 1534 will then drive HOST_WAKE after initialization is complete and it sees MODULE_WAKE.
4. Host processor 1532 sends Enable_Autonomous_Messaging message to radio processor 1534 (1st message sent by host processor 1532). This message enables radio processor 1534 to send autonomous messages to host processor 1532, and also acts as a soft handshake to signal to radio processor 1534 that host acknowledges that modem is powered up.
5. Radio processor 1534 de-asserts RESET_OUT after receiving the message.
Power Off
1. User powers down the module.
2. CPU sends graceful deregistration commands to radio processor 1534 and waits for confirmation response.
3. CPU de-asserts ON/OFF which immediately shuts off power to radio processor 1534.
Host Sleep/Wake Status
The CDMA radio processor 1534 needs to know host processor's 1532 sleep mode status to suppress low priority messages (GSM radio module does not). This is important to conserve host's power by shutting down the UARTs. When host goes to sleep, it will de-assert the HOST_STATUS signal which will result in an interrupt to radio processor 1534. Modem will suppress all low priority control messages until this signal is asserted.
Host sends data to Modem
1. Host asserts MODULE_WAKE interrupt to signal to radio processor 1534 that it wishes to initiate data transfer. Host UART is already enabled at this point.
2. Modem woke up if it was in sleep mode. TCXO, UART1 and UART2 are enabled. Modem is ready to receive data. It asserts HOST_WAKE interrupt to signal to host processor 1532 that it's ready to receive data.
3. Message transfer occurs. Multiple messages can be exchanged.
4. After the message has terminated there is a short hysteresis period to prevent unnecessary toggling of either of the handshake signals.
5. Host de-asserts MODULE_WAKE interrupt since it has finished all the message transfer at this point. Modem however can still send messages to host processor 1532. Modem will NOT sleep until MODULE_WAKE is de-asserted so host processor 1532 de-asserts MODULE_WAKE when it is finished with its transmission.
6. Modem de-asserts HOST_WAKE interrupt if it also does not have any other messages to send. Note: The initiator (host in this case) does not have to terminate the communication first. Now since both MODULE_WAKE and HOST_WAKE are de-asserted, the communication channel is closed and UART clocks are disabled.
7. Both processors can enter into sleep state.
Modem sends data to Host
1. Modem asserts HOST_WAKE interrupt to signal to host processor 1532 that it wishes to initiate data transfer. Modem UARTs are already enabled at this point.
2. Host wakes up if it was in sleep mode. Host's UARTs are enabled. Host is ready to receive data on the UARTs. Host asserts MODULE_WAKE to signal to radio processor 1534 that it's ready to receive data.
3. Message transfer occurs. Multiple bi-directional messages can be exchanged.
4. After the message is terminated there is a short hysteresis period to prevent unnecessary toggling of either of the handshake signals.
5. Modem de-asserts HOST_WAKE interrupt since it has finished all the message transfer at this point. Host can still send messages.
6. Host de-asserts MODULE_WAKE interrupt since it's done with message transfer. The communication channel is closed.
7. Both processors can enter into sleep state.
Thus, in one embodiment the processor 1530 can be configured to conserve power use by allowing the host processor 1532 to enter a reduced power mode when data signals are not being processed, upon receiving a data signal to be processed, the radio processor 1534 can then wake the host processor 1532. Alternatively the radio processor 1534 can enter a reduced power mode when there are no data signals being transmitted or received, the host processor 1532 can then wake the radio processor 1534 when a data signal is ready for transmission.
The input/output controller 1550 receives outgoing messages from and sends thread display information. The input/output controller 1550 may further comprise an audio/video interface, interface drivers, a set of input and/or output buffers, and/or microcode for interrupts. The input/output controller 1550 may be implemented in hardware, software, or a combination. The input/output controller 1550 is also capable of servicing other input/output or peripheral devices.
The input/output controller 1550 is coupled to a display 1560. The display 1560 receives and displays processed video from the input/output controller 1550. The display 1560 is, for example, a monitor, such as an LCD or plasma type, a television, or any other type of display device capable of displaying message-threads. The display 1560 may be integrated with the device 110 or separate.
The input/output controller 1550 is also coupled to a keypad 1570. The keypad 1570 receives messages and control commands from the user and outputs to the input/output controller 270. The keypad 1570 is, for example, a ‘QWERTY’ keyboard, a number pad, a graffiti module, a touch screen, a combination or any other input device capable of receiving user text and commands. The ‘QWERTY’ keyboard may be mechanically adapted to use on a mobile device. Additionally, they keypad 1570 works in combination with software that provides text shortcuts for faster text entry.
The memory 1540 stores the program code executed by the processor to thread messages such as the threading module 1542. The memory 1540 may be a non-volatile type persistent memory such as a hard disk, a compact flash, or an EEPROM. The memory 1540 may be also be a volatile type such as a random access memory, a buffer, a cache, a register, a combination of non-volatile and volatile memory, or other device capable of storing instructions and data. The memory 1540 may also be a single storage device or a system of storage devices. In one embodiment, the memory 1540 also includes a phone book to store user contacts, phone numbers, SMS addresses, e-mail addresses, etc.
The electronic communication devices 1610 correlate messages into threads for display to a user. The electronic communication devices 1610 exchange messages with each other through the SMS network 1655. The electronic communication devices 1610 provide the described user interface to display messages to the user and also to input new messages. The electronic communication devices 1610 may comprise a PDA (Personal Desktop Assistant) such as the Palm Pilot, an IP or cellular telephone, a hybrid PDA/cellular telephone device such as the Treo 600 by Handspring, a PC (Personal Computer), a network appliance, a mobile network device, an SMS device or any other device capable of sending and receiving messages with the SMS network 1655.
The SMS network 1655 comprises various interconnected network devices providing communication pathways for SMS messages exchanged between SMS devices 1610. In one embodiment, the SMS network 1655 comprises SMSCs that forward SMS packets 800 from the electronic communication devices 1610 to other components within the SMS network 1655 and other electronic communication devices 1610. In another embodiment, the SMS network 1655 comprises a gateway to interface with alternative networks and an alternative network such as those on an IP network. An electronic communication device 1610 such as a PDA can thus exchange SMS messages with a PC. In another embodiment, the system 1600 comprises an MMS or other type of messaging network for which the electronic communication devices 1600 thread messages.
In sum, a system and method provide message threading for stored SMS messages. The threading engine 430 identifies relationships between SMS messages by applying a set of threading rules responsive to an electronic communication device sending or receiving an SMS or other type of message.
The above description is included to illustrate the operation of the preferred embodiments and is not meant to limit the scope of the invention. The scope of the invention is to be limited only by the following claims. From the above discussion, many variations will be apparent to one of ordinary skill in the art that would yet be encompassed by the spirit and scope of the invention.
This application claims priority under 35 U.S.C. § 119(e) to U.S. Provisional Patent Application Nos. 60/455,178, filed on Mar. 16, 2003, entitled “Handheld PDA, Telephone, and Camera,” and 60/479,392, filed on Jun. 17, 2003, entitled “Communicator” from both of which priority is and which applications are incorporated by reference herein in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
4279021 | See et al. | Jul 1981 | A |
4415065 | Sandstedt | Nov 1983 | A |
4587630 | Straton et al. | May 1986 | A |
4725694 | Auer et al. | Feb 1988 | A |
4764770 | Church | Aug 1988 | A |
4887212 | Zamora et al. | Dec 1989 | A |
4892981 | Soloway et al. | Jan 1990 | A |
4916441 | Gombrich | Apr 1990 | A |
5010547 | Johnson et al. | Apr 1991 | A |
D320598 | Auerbach et al. | Oct 1991 | S |
5067164 | Denker et al. | Nov 1991 | A |
5101439 | Kiang | Mar 1992 | A |
5218188 | Hanson | Jun 1993 | A |
5227614 | Danielson et al. | Jul 1993 | A |
5334824 | Martinez | Aug 1994 | A |
5335276 | Thompson et al. | Aug 1994 | A |
5336001 | Lichtenberg | Aug 1994 | A |
5345615 | Garofalo | Sep 1994 | A |
5357065 | Mitamura et al. | Oct 1994 | A |
5359317 | Gomez et al. | Oct 1994 | A |
5379057 | Clough et al. | Jan 1995 | A |
5392447 | Schlack et al. | Feb 1995 | A |
D359920 | Sakamoto | Jul 1995 | S |
5430436 | Fennell | Jul 1995 | A |
5465401 | Thompson | Nov 1995 | A |
5494363 | Hochgesang | Feb 1996 | A |
5503484 | Louis | Apr 1996 | A |
5650776 | Mitchell et al. | Jul 1997 | A |
5705995 | Laflin et al. | Jan 1998 | A |
5742894 | Jambhekar et al. | Apr 1998 | A |
5779030 | Ikegami et al. | Jul 1998 | A |
5812651 | Kaplan | Sep 1998 | A |
5813778 | Shih | Sep 1998 | A |
5903852 | Schaupp, Jr. et al. | May 1999 | A |
5905863 | Knowles et al. | May 1999 | A |
5917906 | Thomton | Jun 1999 | A |
5936614 | An et al. | Aug 1999 | A |
5941648 | Robinson et al. | Aug 1999 | A |
5966652 | Coad et al. | Oct 1999 | A |
D416256 | Griffin et al. | Nov 1999 | S |
6038547 | Casto | Mar 2000 | A |
6058304 | Callaghan et al. | May 2000 | A |
6101531 | Eggleston et al. | Aug 2000 | A |
6151507 | Laiho et al. | Nov 2000 | A |
6157630 | Adler et al. | Dec 2000 | A |
6166342 | Chou | Dec 2000 | A |
6198053 | Chou | Mar 2001 | B1 |
6226362 | Gerszberg et al. | May 2001 | B1 |
6230197 | Beck et al. | May 2001 | B1 |
6256631 | Malcolm | Jul 2001 | B1 |
6259931 | Singh | Jul 2001 | B1 |
6278442 | Griffin et al. | Aug 2001 | B1 |
6289226 | Lekven et al. | Sep 2001 | B1 |
6295372 | Hawkins et al. | Sep 2001 | B1 |
6310609 | Morgenthaler | Oct 2001 | B1 |
6333973 | Smith et al. | Dec 2001 | B1 |
6346952 | Shtivelman | Feb 2002 | B1 |
D454349 | Makidera et al. | Mar 2002 | S |
6363349 | Urs et al. | Mar 2002 | B1 |
6370018 | Miller et al. | Apr 2002 | B1 |
D456794 | Laverick et al. | May 2002 | S |
6396482 | Griffin et al. | May 2002 | B1 |
6415138 | Sirola et al. | Jul 2002 | B2 |
D462354 | Kimbre et al. | Sep 2002 | S |
6452588 | Griffin et al. | Sep 2002 | B2 |
D464962 | MacGregor et al. | Oct 2002 | S |
6489950 | Griffin et al. | Dec 2002 | B1 |
D468714 | Maruska et al. | Jan 2003 | S |
D469749 | Kim | Feb 2003 | S |
D470842 | Bhatia et al. | Feb 2003 | S |
6516202 | Hawkins et al. | Feb 2003 | B1 |
D471559 | DeSaulles | Mar 2003 | S |
D477597 | Laverick et al. | Jul 2003 | S |
6611254 | Griffin et al. | Aug 2003 | B1 |
6611255 | Griffin et al. | Aug 2003 | B2 |
6630944 | Kakuta et al. | Oct 2003 | B1 |
6690931 | Heo | Feb 2004 | B2 |
D488478 | Laverick et al. | Apr 2004 | S |
6799033 | Kanefsky | Sep 2004 | B2 |
6867763 | Griffin et al. | Mar 2005 | B2 |
6870828 | Giordano, III | Mar 2005 | B1 |
6873317 | Griffin et al. | Mar 2005 | B1 |
6891529 | Ladouceur et al. | May 2005 | B2 |
6919879 | Griffin et al. | Jul 2005 | B2 |
6938067 | Hershenson | Aug 2005 | B2 |
6941134 | White | Sep 2005 | B2 |
6981223 | Becker et al. | Dec 2005 | B2 |
7003305 | Urs | Feb 2006 | B2 |
7007239 | Hawkins et al. | Feb 2006 | B1 |
D518820 | Hawkins et al. | Apr 2006 | S |
D518825 | Hawkins et al. | Apr 2006 | S |
D519502 | Hawkins et al. | Apr 2006 | S |
7028263 | Maguire | Apr 2006 | B2 |
7054441 | Pletikosa | May 2006 | B2 |
7061403 | Fux | Jun 2006 | B2 |
7103010 | Melideo | Sep 2006 | B2 |
7103348 | Levit et al. | Sep 2006 | B1 |
7103388 | Scott | Sep 2006 | B2 |
7266584 | Mullen et al. | Sep 2007 | B2 |
20010006889 | Kraft | Jul 2001 | A1 |
20010021649 | Kinnunen et al. | Sep 2001 | A1 |
20010025309 | Beck et al. | Sep 2001 | A1 |
20020019243 | Zhang et al. | Feb 2002 | A1 |
20020044136 | Griffin et al. | Apr 2002 | A1 |
20020069218 | Sull et al. | Jun 2002 | A1 |
20020115476 | Padawer et al. | Aug 2002 | A1 |
20020147614 | Doerr et al. | Oct 2002 | A1 |
20020190957 | Lee et al. | Dec 2002 | A1 |
20030005048 | Risalvato | Jan 2003 | A1 |
20030065788 | Salomaki | Apr 2003 | A1 |
20030114174 | Walsh et al. | Jun 2003 | A1 |
20030185379 | O'Connor et al. | Oct 2003 | A1 |
20040015548 | Lee | Jan 2004 | A1 |
20040137884 | Engstrom et al. | Jul 2004 | A1 |
20040166829 | Nakae et al. | Aug 2004 | A1 |
20040185883 | Rukman | Sep 2004 | A1 |
20040218609 | Foster et al. | Nov 2004 | A1 |
20040233159 | Badarneh | Nov 2004 | A1 |
20040239639 | Stavely et al. | Dec 2004 | A1 |
20050097189 | Kashi | May 2005 | A1 |
20060034434 | Kashi | Feb 2006 | A1 |
Number | Date | Country |
---|---|---|
0149762 | Jul 1986 | EP |
1104151 | May 2001 | EP |
Number | Date | Country | |
---|---|---|---|
60455178 | Mar 2003 | US | |
60479392 | Jun 2003 | US |