Method and system for dynamic variation of orginal message length in a reply message

A method and system for generating a reply message limited to a maximum number of characters based on a dynamic variation of an original message length. A messaging client receives the original message and delivers the original message text for presentation to a user. If the user opts to reply to the original message, the messaging client generates the reply message by including the user's reply message text and only so much of the original message text as will fit in a remaining capacity of the reply message. The method and system is particularly useful in a Short Message Service (SMS) messaging system, but may be useful in other systems as well.

BACKGROUND

1. Field of the Invention

The present invention relates to telecommunications and, more particularly, to generating and sending of messages.

2. Description of Related Art

In certain messaging systems, when a user opts to reply to a message, a messaging client can be arranged to automatically include in the user's reply message a copy of the original message. For instance, when the user opts to reply to a message, the client may generate and present to the user a reply template that includes a copy of the original message text, and the user may then type reply message text into the template, typically before the original message text. The client may then send the reply message, including the reply message text and the original message text, to the original sender.

This process works perfectly well in a scenario where messages are not restricted to a maximum size limit. That is, if the body of a reply e-mail message is not subject to a maximum size limit, no difficulty arises from including original message text in a reply e-mail message together with the reply message text.

A problem can arise, however, in a scenario where messages are limited to a maximum length. For instance, in a Short Message Service (SMS) messaging system that operates under current industry standards (e.g., TIA/EIA-637 and variants thereof), the body of each SMS message is typically limited to a maximum of 160 characters. Given this maximum size limitation, the inclusion of original SMS message text in a reply SMS message would necessarily decrease the capacity available for the reply message text. For example, if the original message is 40 characters long, then a space of only 120 characters would be left for the reply message text. (Further, if a text heading such as “ORIGINAL MESSAGE:” is included to introduce the original message, even less space would be left for the reply message text.)

One partial solution to this problem may be to have the messaging client include just a predefined part of the original message in the reply message. For instance, with a 160 character limit, a messaging client could be set to include only the first 20 characters of an original message in every reply message, thereby leaving 140 characters for use as reply message text. This solution would be undesirable, however, because it would always remove that predefined amount of capacity from every reply message. Further, it would be undesirable, because it would arbitrarily limit the amount of the original message that is included.

SUMMARY

The present invention provides a better solution. According to an exemplary embodiment of the invention, a messaging client will include only so much of the original message text as will fit in the reply message with at least the reply message text. (For purposes of this invention, the original message text could be considered to also include any desired header, such as “ORIGINAL MESSAGE:” as well as any desired spacing between it and the reply message text.) Thus, given a maximum message capacity of M characters and given reply message text of R characters, the messaging client would include only M-R characters of the original message text in the reply message.

The messaging client could carry out this function in any of a variety of ways. For example, the messaging client could first receive the user's reply message text and could then append as much of the original message text as would fit after the reply message text, within the maximum message capacity. As another example, the messaging client could allow the user to type the reply message text into a template containing the original message text and could (i) dynamically shift out the end characters of the original message text as the user types the reply message or (ii) truncate as much as necessary of the original message text after the user finishes composing the reply message.

Further, if the number of characters in a portion of the original message text that fits in the reply message is less than a threshold number, then the messaging client could omit the original message text altogether. This additional limitation could prevent a scenario where only a trivial extent (e.g., only several characters) of the original message text is included in the reply message. In this regard, the threshold could be predefined and fixed. Alternatively, the threshold could be dynamically set.

These as well as other aspects and advantages will become apparent to those of ordinary skill in the art by reading the following description, with reference where appropriate to the accompanying drawings.

DETAILED DESCRIPTION OF AN EXEMPLARY EMBODIMENT

Referring to the drawings,FIG. 1is a block diagram of a basic system in which an exemplary embodiment of the present invention can be implemented. The system includes a plurality of communication terminals, of which exemplary terminals12and14are shown, coupled via suitable links to a transport network16. Further,FIG. 1depicts terminal12comprising a messaging client18. Other entities might reside on or be accessible via transport network16as well.

It should be understood, however, that this and other arrangements and processes described herein are set forth for purposes of example only, and other arrangements and elements (e.g., machines, interfaces, functions, orders of elements, etc.) can be added or used instead and some elements may be omitted altogether. Further, those skilled in the art will appreciate that many of the elements described herein are functional entities that may be implemented as discrete components or in conjunction with other components, in any suitable combination and location, and various functions could be carried out by software, firmware and/or hardware logic.

Referring back toFIG. 1, transport network16may be a single network, such as a wireless network or a landline network, or a combination of networks interconnected together via appropriate interfaces and/or various network elements. Each of the plurality of communication terminals may take various forms, examples of which include a landline or wireless desktop computer, or a handheld device such as a mobile wireless data terminal (e.g., mobile phone or personal data assistant (PDA)), equipped with suitable means to communicate with other entities over transport network16. In this regard, each terminal may engage in various forms of communications (e.g., voice and/or data communications), using any of a variety of compatible messaging protocol(s) known in the art.

One of such communications may be a transmission and reception of messages, which are restricted to a maximum size limit. These limited-size messages, typically comprising alphanumeric characters, may be then presented as text messages to communication users. By way example,FIG. 1shows terminal12and terminal14configured to exchange limited-size messages (e.g., a maximum capacity of 160 characters) over transport network16. The messages may be sent directly from one terminal to the other or, alternatively, may be forwarded by some intermediate network element(s) not shown.

As generally depicted inFIG. 1, terminal14may originate a message, either automatically or with a user interaction, and send the original message to terminal12over transport network16. Although this example arrangement assumes that the message originated at terminal14is limited to a maximum size, it is equally possible that the original message may not be restricted to any size limit. In this case, possibly a portion of the original message may be delivered to terminal12that imposes a size limitation on the received messages. Alternatively, the original message may be divided into a sequence of messages sent to terminal12. Other examples are possible as well.

Terminal12preferably comprises a logic element (e.g., software, hardware and/or firmware) such as messaging client18that can operate to receive the original message, to generate a reply message that does not exceed a maximum message capacity, and to send the reply message to terminal14.

FIG. 2is a flow chart generally depicting a set of functions that could be carried out in accordance with an exemplary embodiment, in the arrangement shown inFIG. 1for instance.

When an original message arrives at terminal12, at step20, messaging client18receives the original message text. Messaging client18could be programmed to present the original message text to a user and, at step22, to receive an input from the user indicative of a reply message text.

After or concurrently with receiving the user input, at step24, messaging client18could establish the reply message by including the user's reply text and only so much of the original message text as will fit in a remaining capacity of the reply message. As such, at step26, the messaging client18may include the entire reply message text (assuming the reply message text itself does not exceed a maximum capacity of the reply message) and then, at step28, may possibly include the original message text or a portion thereof that fits together with the reply message text in the maximum capacity of the reply message.

FIG. 3illustrates an exemplary reply message established in this manner. As shown, a reply message40includes reply message text42and only a portion of original message text44that fits within the reply message40with at least the reply message text42. By way of example, reply message40may also include any desired spacing between the reply message text42and the original message text44and/or any desired header of the original message, such as “ORIGINAL MESSAGE:”.

Finally, at step30, messaging client18of terminal12may send the reply message to terminal14over transport network16. The reply message may be directed through the same network path that the original message traversed, or possibly, through a different network path.

WhileFIG. 1depicts a generalized arrangement of entities operating in accordance with an exemplary embodiment of the present invention,FIG. 4illustrates in greater detail a representative communication terminal12arranged to perform functions described herein.

As depicted inFIG. 4, terminal12includes components such as a user interface50, a communication interface52, a processor54and data storage56, all tied together via a system bus or other mechanism58.

User interface50may facilitate interaction with a user, such as presenting to the user an original message text and receiving from a user an input indicative of a reply message text. As such, the user interface might include input mechanisms such as a keyboard, keypad, mouse, microphone and/or touch-sensitive display overlay, as well as output mechanisms such as a display or a speaker.

Communication interface52, in turn, may facilitate communication over a respective link with another network entity, for purposes of receiving and sending communication information, including limited-size text messages. The communication interface can take various forms. For example, if the user station is a wireless mobile station, the communication interface may include an antenna (not shown) for sending and receiving radio frequency signals over an air interface, as well as a chipset compliant with a suitable communication protocol (such as CDMA, TDMA, GSM or 802.11x, for instance). As another example, if user station is landline personal computer, the communication interface might comprise an Ethernet network interface card.

Processor54may be one or more general purpose processors (such as Intel Pentium class processors or better) and/or dedicated processors (such as digital signal processors), and data storage56may be any sort of storage, whether volatile and/or nonvolatile. For instance, data storage56may be flash memory and/or a storage drive.

Data storage56preferably holds a set of logic (e.g. machine language instructions and reference data) executable by processor54to carry out various functions described herein. As shown inFIG. 4, data storage includes exemplary messaging client18, which may be a logic module that implements (e.g., causes processor54to implement) a user agent application for receiving original text messages into terminal12, delivering the messages for presentation to a user and generating reply messages for transmission to other network entities, such as terminal14.

Messaging client18may comprise message-receive logic60, message-reply logic62, and message-send logic64. AlthoughFIG. 4depicts these three elements as functionally integrated in a single logic module (e.g., as program routines in a single application), it is also possible that the three could be distinct modules. Additionally, other logic not shown could exist to coordinate the functions of message-receive logic60, message-reply logic62, and message-send logic64.

Message-receive logic60of messaging client18may function to receive an original message text and to present it to a user operating terminal12, either automatically or in response to a user request. If the user chooses to reply to the original message, the user may, for instance, activate a “REPLY” soft button or any other type of trigger indicative of user's desire to compose a reply message. Responsive to such trigger, message-reply logic62, in turn, may function to process user input defining reply message text and to establish the reply message accordingly. This could be done in a variety of ways.

In one exemplary embodiment, message-reply logic62may contain program instructions to first allow the user to enter the complete reply message text. As the user enters the text, message-reply logic62may keep a running count of characters in the current reply message text and a count of characters remaining in a given message capacity of the reply message (i.e., the maximum capacity of the reply message less the current count of characters in the reply message text). After the user completes the message by pressing a “DONE” soft button or the like, message-reply logic62may then insert into the reply message as many characters of the original text as are still available in the maximum capacity of the reply message. Message-reply logic62may then invoke message-send logic64to send the reply message.

Alternatively, message-reply logic62may contain program instructions to generate a reply template that contains the original message text and allow the user to type the reply message directly into the template. If the original message capacity is at a maximum size limit (e.g., 160 characters) of the reply message, message-reply logic62may dynamically shift out the end characters of the original message as the user types the reply message. That is, for each additional character (e.g., an alphanumeric character or a space) the user enters into the template, message-reply logic62may responsively shift out one end character of the original message text. Otherwise, message-reply logic62may be programmed to truncate as much as necessary of the original message text after the user finishes composing the reply message.

FIG. 5illustrates one exemplary embodiment, in which message-reply logic62is programmed to establish a reply message70by concatenating reply message text72and original message text74, and then truncating a portion of the original message text74. As shown inFIG. 5, the reply message text72contains R characters and the original message text74contains N characters. The N characters of the original message text74could be considered to include the body of the original message and possibly any desired header of the original message, as well as any desired spacing between the original message and the reply message text72.

Given a maximum message capacity of M characters, message-reply logic62will be able to include only M characters in reply message70. Consequently, message-reply logic62may function to fit the reply message text72and M-R characters of the original message text74into reply message70. Message-reply logic62will then truncate any remaining characters of the original message text74. By way of example inFIG. 5, message-reply logic62would truncate N-(M-R) characters of the original message text74.

It is of course possible that the R number of characters in the reply message text72could equal the maximum message capacity M. In this case, message-reply logic62would simply omit the original message text74from reply message70. It is also possible that only a trivial amount of the original message text74(e.g., only a few characters or so) may remain after the truncating operation. In this situation, message-logic62could omit those characters from reply message70.

To facilitate establishing the reply message in those situations where only a small portion of the original message text fits after the reply message text in the reply message, message-reply logic62may define a threshold to determine if any of the original message text should be included in the reply message. More particularly, after including the reply message text in the reply message, message-reply logic62may further apply a program routine to determine if the portion of the original message text that fits in the remaining capacity of the reply message is big enough to justify including.

In one example, the program routine could be arranged to count the number of characters in the portion of the original message text that fits in the reply message and compare it to a threshold number. If the counted number of characters is less than the threshold number, then message-logic62could omit the original message text from the reply message. The threshold could be predefined and fixed or, alternatively, dynamically established to allow inclusion of either minimum usable amount of the original message text (e.g., an amount that might give a reader a sense of what the original message concerns) or none of the original message text.

In this regard, message-reply logic62may further contain a program subroutine that is arranged to dynamically establish the threshold number of characters based on words in the original message itself. For example, the subroutine could be arranged to dynamically set the threshold to be the number of characters that make up a particular number of starting words of the original message text, such as the first three words of the message text for instance. This way, if the remaining capacity in the reply message is not sufficient to hold at least those starting words of the original message text, the message-reply logic62could simply omit the original message text altogether.

To dynamically set the threshold in this manner, the subroutine could be arranged to count the number of characters in the designated number of starting words and to set the threshold to be that number. For instance, if the number of starting words is three, then the subroutine could count the number of characters in the original message text up to the space after the third word and could set the threshold to be that number of characters. Other mechanisms for dynamically establishing a threshold could be used as well.

While system10is generically representative of an arrangement in which an exemplary embodiment can be implemented, various details are possible.

As one example, the present invention is particularly advantageous for use with SMS messages that are limited to a maximum number of characters. As defined by TIA/EIA 637-A and/or other industry standards, SMS allows the exchange of short messages between a mobile station (e.g., a wireless handheld device such as a mobile phone) and a wireless network, and between the wireless network and an external device (e.g., a data terminal). By way of example,FIG. 6illustrates in more detail a block diagram of a representative communication system80in which an exemplary embodiment of the present invention can be implemented.

As illustrated inFIG. 6, communication system80comprises a mobile station (MS)82that communicates over an air interface84with a radio access network86. Radio access network86is coupled to a packet-switched network88, which, in turn, is coupled to a personal computer (PC)90. MS82may thus communicate with PC90via a communication path comprising the air interface, the radio access network, and the packet-switched network. In addition, a short messaging service center (SMSC)92is shown to reside on both radio access network86and packet-switched network88.

Under TIA/EIA 637-A and/or other industry standards, the SMSC can receive, store and forward SMS messages to short messaging entities such as SMS-capable mobile stations for instance. MS82, in the exemplary arrangement, can be an SMS-capable mobile station. As shown inFIG. 6, MS82includes an SMS client94.

Although not shown, MS82is preferably equipped with a wireless transceiver for receiving SMS messages delivered by radio access network86over air interface84and transmitting SMS messages to radio access network86over air interface84. The MS may also include a display for displaying SMS message text to a user and any suitable user interface (e.g., a keypad) for receiving inputs from a user. For instance, if the user wishes to compose an SMS message, the user may input the message text using such interface.

In an exemplary embodiment, a message may be originated from PC90(e.g., by way of e-mail or any other suitable means) for delivery to MS82. The message may be sent over packet-switched network88to SMSC92, which in turn may forward the message through radio access network86to MS82. Although not shown, SMSC92may typically query a Home Location Register (HLR) that stores service profiles for wireless subscribers, to obtain current location of MS82within radio access network86and to route the message to MS82accordingly.

SMS client94of MS82can be an SMS application program arranged to receive, compose, store, act upon, display or otherwise manage short text messages that are limited to a maximum length. According to the exemplary embodiment of the present invention, SMS client94can be arranged to receive the original message and display it to a user of MS82. If the user opts to reply to the message, SMS client94can generate a reply message by including the user's reply message text (and possibly any desired header text and/or any desired spacing between the user's reply message text and the original message text) and only so much of the original message text as will fit in a remaining capacity of the reply message. SMS client94can then send the reply message for delivery to PC90.