ENHANCED TEXT-BASED MESSAGING SYSTEM
The present invention relates generally to a text-based user interface and finds particular application in the interaction of portable communication devices such as mobile radiotelephones with remote server based applications over plain text-based communication protocols such as Short Message Service.
In addition to voice calls, users of portable communication devices such as mobile radiotelephones are finding text-based communication very useful. In particular, a facility known as Short Message Service (SMS) built into Global System for Mobile Communications (GSM) compatible radiotelephones and infrastructure has become very popular. SMS provides for the exchange of individual plain text messages, currently limited to 160 characters in length between GSM compatible radiotelephones and remote server based applications connected to the radiotelephone network. However, a disadvantage of the facility is the necessity of entering text through the small numeric character keypad attached to most mobile radiotelephone devices. This requires multiple key presses to select each character, severely limiting the speed and convenience of text input.
Subsequent developments in mobile radiotelephone technology include a facility for using 'mark-up languages' such as Wireless Mark-up Language (WML) and Compact Hypertext Mark-up Language (cHTML). These allow for server executable functions to be attached to words or symbols sent to the mobile radiotelephone and displayed on its screen. When selected by the user these return a command to the server which executes a predetermined action such as returning another piece of information. The system is usually interfaced through a dynamic text-based menu driven display, featuring scrollable lists of selectable options, with a button or roller driven method of highlighting an individual option and selecting it for the execution of its attached function. This system provides a user friendly method for the exchange of information and control of remote server based applications without the necessity for lengthy text statements or commands to be manually entered through the radiotelephone keypad.
This functionality enables the development of mobile radiotelephone applications that require relatively sophisticated dialogue between user and server.
As not all mobile radiotelephones have facilities for the use of mark-up languages, there is a need for methods of interaction with remote server based applications that are compatible with the more common SMS protocol. In particular, a method for selection from a plurality of predetermined options is particularly important for the development of user-friendly applications. As the SMS protocol is based upon the exchange of individual plain text messages and can only display one static message on the screen at a time, it is unsuitable for conventional menu driven selection where the options remain visible during a dynamic selection process.
In an attempt to overcome the shortcomings, pre-existing SMS based applications require the user to send a message containing predetermined code words in order to request corresponding actions from a remote server. These commands are published as printed materials or web pages, requiring the user to refer to them or to memorise them over long periods before recalling them for use. The necessity to carry printed materials, memorise commands and enter multiple character strings on a mobile device creates an inconvenient and unintuitive user interface. Furthermore, pre-existing applications often require the user to enter multiple word commands, as the remote server does not maintain adequate information regarding the state of the dialogue with the individual device in relation to a pre-programmed sequence of possible events and actions. This means that individual commands have insufficient relationship to previous commands or other context that can govern how they are interpreted by the server.
Accordingly, there is a need for a text-based portable communication device interface that allows for the convenient and intuitive selection from a list of predetermined options, whilst operating within the transmission, display and input constraints imposed by plain text-based telecommunication protocols such as SMS.
An object of the invention is to provide a purely text-based user interface compatible with Short Message Services on portable communication devices that allows for the
easy selection between a plurality of options displayed on screen using the minimum number of necessary keystrokes.
The invention provides for a method of providing an automatic interactive text-based user interface which comprises maintaining a record of messages transmitted and received by a messaging service from a user of a mobile communications network, and formulating and transmitting new messages automatically in accordance with an index set held in an associated database, and in accordance with messages received from the user in response to specific messages transmitted previously over said network.
The invention in one embodiment provides for a method for operating text-based user interface over a mobile communications network having standard text display and telecommunications protocols, the method comprising some or all of the steps of:
- storing and maintaining on a remote server predefined text-based descriptions and associated letter or number index information for multiple user selectable options;
transmitting text-based selectable options and associated index information to an individual portable communication device by way of existing telecommunications protocols;
displaying text-based selectable options and associated index information on said portable device;
- providing a method of selection between a plurality of options stored on said remote server from said portable communication device;
- the input of index information into the portable communication device by way of a standard keypad and transmission of said index to the server by way of said telecommunications protocols;
interpretation by the server of the option selected and action consequently required according to the index information transmitted; and
- maintenance on the remote server of the state of the dialogue with the individual device in relation to pre-programmed sequences of events and actions.
The protocol used for said transmission and reception of said text messages may be short message service (SMS). In this and similar protocols, the facility is given to the user to construct a reply message, which can be sent without the need to enter addressing information. This can be used in the present method, to improve greatly the user interface. Known systems generally require the entry of a destination number, making it hard to sustain an interactive dialogue between the server and the user.
The method further provides text-based prompts for information and commands from the user delivered to the screen of the mobile device, allowing the user to be able to participate in interactive services or to operate complex applications running on a remote computer server, using short replies to pre-defined messages.
The step of inputting index information into the portable communication device by way of a standard keypad preferably requires one or at most two commands or pieces of information to be requested from the user per message. This reduces the burden on the user to remember commands over the short period between reading them in the received message and entering a response in the reply message.
The index character may be a single letter corresponding to the first letter of a single word chosen to represent the required information or command. Other embodiments include the use of multiple index letters, preferably two or three, and single index numbers.
By maintaining a session history at the server, and using the "reply" message feature, the assignment of an index character or short string of characters to each response
option requires only the index character to be returned to the computer server for the associated command to be executed.
An application running on the computer server keeps track over time of the state of the user in relation to a pre-programmed sequence of possible events and actions. The various index codes and related messages can be stored on a database connected to the application server.
The user can determine the type of information sent to an individual portable communication device. The user can further define sub-categories of information to be received by way of response to further queries. The type of information sent to the individual portable communication device may vary according to the index codes sent. Information may vary according to response to, for example, queries on geographical location or certain stated preferences. Further subcategories may be similarly defined by the user in response to queries sent by the server application.
The interface might display a very short list of available options in plain text on the mobile device and provide a short index code that is easy for the user to memorise whilst they are creating a new reply message. The remote server application should maintain comprehensive state information regarding the individual mobile device, in order that the commands can be simpler than they might otherwise need to be.
In one embodiment the invention uses at least one finite state machine (FSM) to control the application behaviour. In such an embodiment the session history may be maintained and new commands executed by providing a finite state machine function (whether in hardware or, more realistically, software) at the server.
In operation the FSMs each comprise means for maintaining a current one of a set of states and means responsive to possible user commands or other inputs to adopt a
predetermined new state in accordance with the current state and the received command.
In one embodiment there may be multiple FSMs, each FSM operating on a different 'channel' for the purpose of sending messages to the users and receiving replies from them, i an SMS embodiment, for example, each channel can be allocated a unique code or 'phone number' from which SMS messages are sent to the users and replies are received from them.
When a user reaches a point in their interaction with the application where they can be "moved" on to a different FSM, the application sends a message from the code of the new FSM, to which the user then responds using their terminal's 'reply' function.
The method may include recording charging information differently according to the channel used for each message or response.
This mechanism can be used to provide the service operator with a method of charging their customers different amounts for messages sent to/from the application for different aspects of the service. This works because wireless operators generate customer billing records by allocating specific message pricing information to each individual code made available to users. For example, the operator might decide to provide free registration, premium priced access to the core service and standard priced access to maintenance functions such as changing preferences or getting help.
In one embodiment two index characters may be used to define each option within individual menus or within sequences of menus controlled by the same finite state machine. This maintains labelling consistency but at the same time avoids duplication of characters
A single word and character (eg B Back) may be used for recurring or isolated menu items. A two or three word description with the first letter of two of the words taken as the index characters (eg UN User Name, MW Man flirts Woman) may be used for
unique items or those in sizeable menu lists used often. A single or multiple word description with the first two letters of the first or only word as the index characters (eg PR PReferences, BL BLock this phone forever) may also be used. The invention in another aspect provides a method of providing an anonymous message server wherein a user can receive and reply to messages without the systems revealing original sender information. Replies to messages received are routed to the original sender by reference to the server memory, where the address (phone number) of the original sender is saved.
The invention further provides apparatus comprising means for implementing the server functionality of the method according to the invention as set forth above, and computer program products for implementing the same.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the invention will now be described, by way of example only, by reference to the accompanying drawings, in which:
Figure 1 illustrates a wireless communications network implementing an enhanced text-based user interface for portable communication devices;
Figure 2 illustrates a wireless communications network for implementing an enhanced text-based user interface for portable communication devices, including a wireless link;
Figure 3 shows an initial message received by means of an enhanced text-based user interface for portable communication devices;
Figure 4 shows a reply message to that shown in Figure 1 ;
Figure 5 shows a text message received by means of an enhanced text-based user interface for portable communication devices;
Figure 6 shows a single index character to be transmitted by means of an enhanced text-based user interface for portable communication devices;
Figure 7 shows a representative text message exchange received by means of an enhanced text-based user interface for portable communication devices.
Figure 8 shows an exchange of messages between a portable communication device and finite state machines in a wireless communications network application server.
DETAILED DESCRIPTION OF THE EMBODIMENTS
Figure 1 illustrates a wireless communications network for use in conjunction with a enhanced text-based user interface for portable communication devices, in particular for use in conjunction with the facility known as Short Message Service (SMS). Such networks are commonly used for Global System for Mobile Communications (GSM) telephony systems. Such networks typically comprise a mobile radiotelephone 5, capable of receiving and transmitting a signal to a wireless base station 10, similarly capable of receiving and transmitting a signal from mobile radiotelephone 5 and connected to a short message centre 15. The short message centre is connected to a computer server 20 which is connected to a database 25. All connections shown here are duplex in nature.
Figure 2 illustrates a wireless communications network for implementing an enhanced text-based user interface for portable communication devices, including a wireless link. This shows a wireless communications network for use in conjunction with a enhanced text-based user interface for portable communication devices, also including a wireless link. In this configuration a second wireless base station 30 is capable of handling duplex communication between short message centre 15 and radio receiver 35. The radio receiver 35 is connected to the computer server as before.
The novel text messaging user interface exploits certain limitations of the SMS platform in that it utilises distinct and separate messaging events between the computer server 20 and mobile radiotelephone 5 to carry requests and responses between the two. This contrasts with internet based platforms such as Wireless Application Protocol (WAP) that use mark-up languages to create in-built interactivity in the form of hyperlinks and text entry fields, etc.
Within the proposed method, text-based prompts for information and commands from the user are delivered to the screen of the mobile radiotelephone 5, eliminating the need in the prior art to memorise instructions over long time periods, to use separately
published instructions to be able to participate in interactive services, or to operate complex applications running on a remote computer server.
Due to limitations of the SMS platform, a message received on a portable communication device such as mobile radiotelephone and displayed on its screen usually disappears from the users view when a reply message is initiated. In order to reduce the burden on the user to remember commands over the short period between reading them in the received message and entering a response in the reply message, a key feature of the proposed method is that preferably one or at most two commands or pieces of information are requested from the user per message.
The majority of portable communication devices such as mobile radiotelephones have "ten key" numeric keypads, the keys of which are also used for the entry of text through combinations of key-presses, requiring up to four actions for the entry of a single letter. In order to reduce significantly the total number of actions required to make a response to the server, a key feature of the proposed method is the assignment of an index character or short string of characters to each response option, requiring only the index character to be returned to the computer server for the associated command to be executed.
It is important that the above mentioned index character or characters are quick to enter on the keypad of a portable communications device and easy for the user to remember between reading the instruction and entering the reply in a separate reply message. For these reasons the preferred embodiment of the index character is a single letter corresponding to the first letter of a single word chosen to represent the required information or command. Other embodiments include the use of multiple index letters up to a maximum of three and single index numbers.
In order to implement the enhanced user interface as described above in the context of a reasonably complex interactive service or application to be remotely controlled, it is necessary for the application running on the computer server 20 to keep track over time
of the state of the user in relation to a pre-programmed sequence of possible events and actions.
The method of selection, from a portable communication device between a plurality of options stored on a remote server 20 connected to database 25, from a portable communication device comprises the storage on a remote server of predefined text- based descriptions and associated letter or number index information for multiple user selectable options. The transmission of text-based selectable options and associated index information to an individual portable communication device such as mobile radiotelephone 5 is by way of existing telecommunications protocols such as SMS.
The remote server 20 maintains the state of the dialogue with the individual device in relation to pre-programmed sequences of events and actions. The display of text-based selectable options and associated index information on mobile radiotelephone 5 is by way of its standard graphic display using telecommunications protocols.
The input of index information into the mobile radiotelephone 5 by way of its standard keypad and its transmission to the server by way of existing telecommunications protocols. The server 20 interprets the option selected and action consequently required according to the index information transmitted.
Figures 3 to 6 show examples of different stages involved in using the system as a part of a forum or chat room based service. Each shows a typical mobile radiotelephone 5, equipped with screen 50 and input means in form of standard keypad 55.
Such forums are configured to allow interactive discussion of a particular topic amongst a group of people. When a participant posts a message to such a forum then their contributions are seen by everyone. It may also be possible to address a particular participant of a forum privately without revealing the message sent to other participants. The actual form of the forum can thus be configured variously to allow for different levels of privacy and interaction. It is a feature of such forums, though, that it
is possible for any correctly authorised person to participate in an interactive manner with other members of that forum.
In Figure 3 an initial text message 60 is transmitted from the server and displayed on the mobile radiotelephone screen 50. In the particular embodiment shown there is displayed an invitation to join a discussion forum, also known variously as a chat room or a channel. Each discussion forum has a unique index code.
Shown here are options for three different forums: sport, music, or technology. It is possible for a user to join and enter a forum through the "reply" option on mobile radiotelephone 5 in conjunction with a single letter code representing the forum wished to be joined.
In Figure 4 the user has created a new reply message 65 and keyed in the index code of the forum he wishes to join, in this case sport (S). This is sent as a standard SMS message to the short message centre 15 and computer server 20 connected to database 25.
In Figure 5 the next text message is transmitted from server 20 by way of short message centre 15 and displayed on the mobile radiotelephone display. The message 70 displayed indicates that further sub-categories in the sports forum are available, and can be accessed by way of entering a further single letter code.
In Figure 6 the user has replied with his choice. Note that the reply index character iun the reply message 75 can be the same as previously used as the server 20 maintains state information for the user. Thus the user has enters a discussion forum on soccer represented by index code (S) in the general category of sports, also represented by index code (S).
Figure 7 shows a typical text message exchange received by means of an enhanced text-based user interface for portable communication devices. In this example an exchange between two users, A and B, takes place.
Here column 90 indicates messages received by user A, and column 95 messages sent by user A. Column 100 indicates messages received by user B, and column 105 messages sent by user B. Row 110 shows how each user is presented with a list of options. In this example each user has previously entered a "dating service" forum and chooses to continues in the sub-category "choosy" (C). This is accomplished by entering the index code (C) and their user name, here "Jill" and "Peter". Next, at row 115, they choose whether to only read messages, or have the option to send a message. Each user enters the appropriate index code.
User A chooses to send a message and user B to read messages. Next, at row 120, user A and B both decide to delve further into the "fun" (F) sub-category of the forum. Next, at row 125, since user A has chosen to send messages, the server sends a message which prompts her to "sing his praises", replying to the service with a short personal message. This is received by user B and displayed on his mobile radiotelephone display. The received message is accompanied by a prompt to reply to the message or reject the message using an index code (R). User B decides to reply to the message. At row 130 User A receives user B's reply to the original message sent. This is accompanied by a prompt to either further reply or reject, using an index code (R). User A decides to spurn the advances of user B and so replies with reject index code (R). Following this action the server causes a message to be displayed to user B informing user B of User A's decision not to continue. User B then chooses to continue reading messages as before by replying to the service with the appropriate index code (R).
The server 20 controls the routing of messages, maintaining a record of messages received and transmitted by the users. This enables a user to enter a forum and easily "broadcast" the message to all the users participating in the forum, or to send a message to another user within that forum on a one-to-one basis.
For example, a user may enter a forum and read messages sent to all participants in that forum. The user can choose to ignore a message or to send a private reply which other members of the forum will not receive. A dialogue between the user and the sender of
the original message can now be carried out in private without being seen by other participants. Replies to messages can be tracked so that messages can be routed within a forum to specific individuals, without the replying party re-keying any name and address identifying the original sender.
By maintaining a such record of use it is possible for the server to track users and route messages to the correct message recipient without placing a burden on either the message sender or recipient to follow cumbersome messaging procedures.
To illustrate further, consider the situation where User B at row 125 chooses to reject or simply not reply to the message from User A (Jill), and awaits further messages from other users in the same forum (Users C, D etc). From the point of view of the mobile telephone network, these messages all emanate from the server, and any reply will be sent from B's phone to the server. However, because the server 20 remembers whether each message is from User A, C, D or whoever, B's reply to a specific one of these messages can be routed to the appropriate recipient, by sending a new SMS message to the original sender.
Those skilled in the art will appreciate that different embodiments are possible, within the spirit and scope of the invention, and the specific embodiments above are presented as examples only.
For example, the format of the forum can vary from the well-known "chat room" format, as illustrated in the example of Figure 7, allowing for the provision of different services where a degree of interactivity is needed. Other examples may include providing personally tailored news information or reports. These could be tailored by personal tastes, for example, or by geographical indications.
The user can determine the type of information sent to an individual portable communication device. The user can further define sub-categories of information to be received by way of response to further queries. The type of information sent to the
individual portable communication device may vary according to the index codes sent. Information may vary according to response to, for example, queries on geographical location or certain stated preferences. Further subcategories may be similarly defined by the user in response to queries sent by the server application. Other applications could involve text-based games with progress based on user choices.
It is also possible to use such a system as an anonymous message server. In this case the user knows the mobile radiophone number of the person they wish to send a message to, rather than the recipient being a member, or members, of a specific forum. However, they would like to send a message anonymously or under a nickname (for example "secret admirer"). The message recipient will receive the message but not the sender's own mobile radiophone number. A reply can be sent to the sender via the messaging service and server, thus preserving the anonymity of the sender but still allowing a reply to be made to the message. By memorising the ID of the sender, the server can route the message to the original sender. A facility to block further anonymous messages from the same sender can be provided, for example through the menu response techniques previously described.
Figure 8 shows an exchange of messages between a portable communication device and finite state machines in a wireless communications network, the exchange carried out by the user by way of an enhanced text-based user interface.
A portable communication device, here shown as a mobile telephone 140, can send and receive messages over a wireless communications network to an application server 145. The application server comprises a number of finite state machines (FSMs) FSMl, FSM2, FSM3. Only three FSMs are shown here but the number may be variable according to the complexity of the messaging services offered. One FSM may be sufficient. There are shown message exchanges 150 between the state machines. The message exchanges 150 are organised as "channels" 155, 160, 165 according to which FSM they transact with.
The device 140 may exchange messages 150 with the FSMs according to predefined message rules. In one example of operation the device 140 communicates through channel 155 with FSMl. A particular message, or combination of messages, can be interpreted by FSMs as an instruction to pass handling of message exchanges to another FSM. For example FSMl may pass control of message exchanges to FSM2. The device 140 now communicates through channel 160 with FSM2. Similarly, FSMl can pass handling of message exchanges onto FSM3, and so would communicate through channel 165 with FSM3. Alternatively, FSM2 can pass back control to FSMl if the appropriate instructions are received. Similarly, FSM3 can return control to either FSM2 or FSMl as shown, on receipt of the appropriate instruction.
The FSMs can be used to control application behaviour. FSMs are industry standard mechanisms well known in the art comprising a set of states, including a record of the state within which the user is currently held, a number of possible user commands or inputs to that state, a definition of the action taken by the application in response to a particular input and the next state into which the user is placed following a particular input.
Multiple FSMs can also be used as a secondary organisational tool. Each FSM operates on a different 'channel' 155, 160, 165 within the application, with each channel being allocated a unique code or 'phone number' from which SMS messages are sent to the users and replies are received from them, h this way, when a user reaches a point in their interaction with the application where they need to be moved on to a different FSM, the application sends a message from the code of the new FSM, to which the user then responds using their terminal's 'reply' function.
The FSMs can be used to provide the service operator with a method of charging their customers different amounts for messages sent to/from the application for different aspects of the service. This works because wireless operators generate customer billing records by allocating specific message pricing information to each individual code made available to users. For example, the operator might decide to provide free
registration, premium priced access to the core service and standard priced access to maintenance functions such as changing preferences or getting help.
Two index characters can be used to define each option. This helps maintain labelling consistency but at the same time avoids duplication of characters within individual menus or within sequences of menus controlled by the same finite state machine. Although each implementation is unique, for recurring or isolated menu items we might generally use a single word and character (for example B Back); for unique items or those in sizable menu lists we would often use a two or three word description with the first letter of two of the words taken as the index characters (for example UN User Name, MW Man flirts Woman); occasionally we might also use a single or multiple word description with the first two letters of the first or only word as the index characters (for example PR PReferences, BL BLock this phone forever). Capitalisation can be used to reinforce the link between a response description and its index character/s.
There is no need for each FSM to be allocated within, say, the same location, whether the same application server, message centre, or even country. When a user switches to a different channel the user may be switched seamlessly to, for example, another application server. This server could be located remote from the previous server which handled the previous channel.