Two-way wireless messaging system with flexible messaging
Abstract
A system and method for two-way wireless messaging is disclosed. A plurality of messages are stored within a user agent of the two-way messaging network. The messages correspond to those selected by a subscriber of a two-way messaging service. The messages are encoded and include control information. An originating message transfer code is transmitted from the two-way messaging device of the subscriber to the two-way messaging network. The originating message transfer code includes, among other things a message number and a modifier that specifies customizations that are to be applied to a message. The originating message code is then expanded within the user agent, and the expanded message is forwarded to desired destinations based on the content of the originating message transfer code. In one aspect of the present invention, the message can be encoded with at least one control tag and in another aspect of the invention, the message can be encoded with paired control tags that delimit the beginning and end portions of a message to which control should be applied.

Term
Term ended
Projected expiry passed 19 August 2017, 9.1 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
30 claims: 4 independent, 26 dependent
- 1A two-way wireless messaging system comprising A messaging network, and a two-way wireless messaging device, including means in the two-way messaging device for originating, receiving and replying to messages having plain alphanumeric text, and wherein a message includes rich text attributes for delineating a portion of the alphanumeric text that should be emphasized or highlighted.
- 2A two-way wireless messaging system comprising A messaging network, and a two-way wireless messaging device, including means in the two-way messaging device for originating, receiving and replying to messages having optional components for allowing a user of a messaging device to include and exclude parts of a message.
- 10A two-way wireless messaging system comprising a messaging network having at least one user agent corresponding to a subscriber of a two-way wireless messaging service that receives messages from the messaging network, said user agent including a plurality of messages stored therein for forwarding to a desired destination in response to an originating message code that is received from a two-way messaging device of the subscriber, and wherein said messages stored within said user agent are encoded and include control information.
- 22A method for two-way wireless messaging comprising the steps of storing a plurality of messages within a user agent of a two-way messaging network, the messages corresponding to those selected by a subscriber of a two-way messaging service, wherein the messages are encoded and include control information, transmitting from the two-way messaging device of the subscriber to the two-way messaging network, an originating message transfer code having a message number and modifier that specifies customizations that are applied to a message, expanding the originating message code within the user agent, and forwarding an expanded message to desired destinations based on the content of the originating message transfer code.
Independent claims4
175 paragraphs, as filed
0001This patent application is related to commonly assigned, copending patent applications entitled Two-Way Wireless Messaging System and Two-Way Wireless Messaging System Having User Agent, both filed July 24, 1996 by the same inventors.
<u>Field of the Invention</u>
0002This invention relates to a two-way wireless messaging system having flexible messaging capability.
<u>Background of the Invention</u>
0003Wireless messaging, such as wireless paging, is a popular consumer wireless service and will grow because of the availability of new narrowband Personal Communication Services (PCS) frequencies. Wireless communication and messaging provides the foundation for many different types of services. One popular service is one-way paging, which is now very successful. Its popularity has been contributed by numerous factors, including: <ul id="ul0001" list-style="none" compact="compact"><li>(1) the small form factor of the pager device, making it portable;</li><li>(2) the low cost of the paging service;</li><li>(3) easy maintenance of the pager device; and</li><li>(4) ease of use for both message senders and receivers.</li></ul>
0004One-way paging, however, has no reply capability. A subscriber to a one-way paging service must rely on an alternate method to respond to any messages that are received. For example, after receiving a page from the one-way paging service, a subscriber often has to find a telephone and make a call to respond to the message.
0005Recently, some ideas have been proposed to design a "two-way paging system" while preserving the benefits of one-way paging, i.e., the small paging device, low cost service, easy maintenance and ease of use. These two-way paging systems include return channels, but they are used only for fixed and limited replies.
0006In commonly assigned, copending patent applications entitled Two-Way Wireless Messaging System and Two-Way Wireless Messaging System Having User Agent, both filed July 24, 1996 and incorporated herein by reference in their entirety, the disadvantages of prior art wireless messaging systems are overcome through the use of a messaging network and two-way wireless messaging device which originates, receives and replies to messages having dynamic message components to and from the messaging network. It would be advantageous if the system would be adaptable for various ways of modifying messages while maintaining limited bandwidth.
<u>Summary of the Invention</u>
0007A two-way wireless messaging system in accordance with the present invention now allows flexible messaging that customizes various message components. These customizations include rich text attributes for delineating a portion of alphanumeric text that should be emphasized, optional components, user-defined selections and preselections and variables. In one aspect of the present invention, a two-way wireless messaging device originates, receives and replies to messages having plain alphanumeric text. A message can include rich text attributes for delineating a portion of the alphanumeric text that should be emphasized. The rich text attributes include attributes for highlighting a portion of the alphanumeric text.
0008In another aspect of the present invention, the two-way messaging device can originate, receive and reply to the messages having optional components for allowing a user of the messaging device to include and exclude parts of a message. Additionally, user-defined selections allow a subscriber of the two-way messaging system to specify a list of items of which a selection can be made. Also, messages can be customized with pre-defined selections having variables.
0009The messages stored within a user agent are encoded and include control information that is responsive to message transfer codes received from a two-way messaging device. The messages are encoded within a user agent with at least one control tag, and often with paired control tags delimiting the beginning and end of that part of a portion of a message where control should be applied. The originating message code that is forwarded from a two-way messaging device includes an encoded transfer code. This encoded transfer code typically includes a message number and modifier that specifies customizations that are applied to the message.
0010The foregoing disclosure also discusses a two-way wireless messaging system that can be used also in a public switch telephone network or similar network.
0011Limitations of existing wireless paging systems are resolved and technical advances are achieved in the present invention by a method and system for transmitting messages on a wireless messaging network with a plurality of user agents and other intelligent servers such as transaction servers, distribution servers and batch servers. The benefits of the present invention are set forth below.
0012In accordance with one aspect of the present invention, a wireless messaging device can originate new messages or reply to previously received messages along a first communication channel (uplink), and receive messages along a second communication channel (downlink). Each such message is coded in a predetermined manner and includes, among other things, a message number that uniquely identifies a message stored both locally at the device and at the user agent, a modifier representing the customization to be applied to the message, and personalized address aliases.
0013A user agent inside the two-way messaging network, corresponding to a subscriber of a two-way message system, stores among other things, a plurality of messages and destination addresses. When a user agent receives a coded message from its associated subscriber, it expands the message back to the desired full message and destinations by selecting from the stored messages and destination addresses according to the code.
0014The message that can be transmitted is highly flexible. In addition to fixed pre-canned components, it can include dynamic components such as embedded replies, choices, predefmed variables, etc. As an example, consider a stock trading application. A subscriber is notified via two-way messaging when a stock he or she is interested in has reached a particular value. The notification message can embed a reply with choices to buy or sell and predefined variables for entering the number of shares and share price.
0015The dynamic components allow customization of messages by message senders and recipients, thus greatly increasing the practical applicability of the system. The particular values of the dynamic components are encoded in the message modifier, and are recovered and applied by the user agent.
0016The coded message is much shorter than the corresponding full-text message, thus allowing reduced bandwidth usage in a wireless communication environment. Together with user agents, the use of coded message is especially suited for communication scenarios in which the bandwidth in the uplink and downlink directions are asymmetric, or the end device is limited by either processing power, memory storage, or battery capacity.
0017The two-way messaging system of the present invention also can support multicasting. A message can be forwarded to a plurality of destinations for multiple responses. The address alias contained in a coded message can correspond to a single address, a group address or any combination of the two. With multicast, the number of (uplink and downlink) messages required for the transmission of a message is minimized.
0018In another aspect of the present invention, the system can track and answer queries about transactions. A transaction is a single or a series of request-response interactions between a message sender and recipient(s). A transaction is most useful for communication scenarios in which selective responses are desired. For example, a transaction can specify that a response arriving beyond a certain time limit will not be needed and should be discarded by the system. When combined with multicast, a transaction can specify the desired semantics of the reply. For example, a transaction with ALL semantics specifies that responses from all recipients are desired, while a transaction with OR semantics specifies that a response from any of the recipients will close the transaction. Once a transaction is closed, additional responses will be discarded by the system.
0019In accordance with another aspect of the present invention, the system functionalities are distributed among a collection of user agents and intelligent servers. The distributed nature enhances the modularity of the system and makes possible the incremental deployment of the system. For example, a provider desiring only the functionalities of user agents but not those of the transaction servers need to only deploy the user agents.
0020The method and system of the present invention can be implemented on top of any two-way messaging transport. This includes dedicated paging networks (e.g., narrowband PCS), cellular short messaging service (e.g., IS-95, IS-136 and GSM), or wireless data transport (e.g., ARDIS).
0021The servers can be implemented on specialized network servers or intermediate switches.
0022The messaging device can be a dedicated paging device similar to existing alphanumeric pagers, a unit that attaches to a computing device (e.g., PDAs, laptops), or integrated as part of a communication device (e.g., cellular/PCS phones) or a computing device (e.g., PDAs, laptops).
<u>Brief Description of the Drawings</u>
0023The foregoing features and advantages of the present invention can be appreciated more fully from the following description, with references to the accompanying drawings in which:
0024Figure 1 is a block schematic diagram of a system and method of the two-way wireless messaging system of the present invention showing its use in association with a public switched telephone network, data network, cellular network and a two-way messaging device.
0025Figure 2 is another schematic diagram of the two-way wireless messaging system of the present invention.
0026Figure 3 is a more detailed view of the two-way wireless messaging system showing various user agents, the messaging network, and examples of messages that can be forwarded among the different subscribers.
0027Figure 4 is a schematic view showing the network architecture of the two-way wireless messaging system of the present invention.
0028Figure 5 shows an example of the control architecture for the two-way wireless messaging system of the present invention.
0029Figure 6 is a block diagram showing an example of the protocol architecture used between the messaging device and the batch server of the two-way wireless messaging system of the present invention.
0030Figure 7 is a detailed flow chart showing an example of the protocol flow for new message delivery used with the two-way wireless messaging system of the present invention.
0031Figure 8 is a detailed flow diagram showing an example of the reply delivery in the two-way wireless messaging system of the present invention.
0032Figure 9 is a schematic diagram of a two-way messaging device in the form of a two-way pager that can be used with the two-way wireless messaging system of the present invention.
0033Figure 10 is a schematic diagram of an example of the batch server structure that can be used with the two-way wireless messaging system of the present invention.
0034Figure 11 is a schematic diagram showing an example of the functional parts of the user agent that can be used with the two-way wireless messaging system of the present invention.
0035Figure 12 is a schematic diagram showing an example of the various functions of the transaction server that can be used with the two-way wireless messaging system of the present invention.
0036Figure 12a depicts the open and closed states of the conversation manager.
0037Figure 12b depicts the state transition diagram for the recipient states of the transaction server.
0038Figure 13 shows a schematic illustration of a two-way messaging device where a simulated keyboard is displayed for entering a message.
0039Figure 14 shows a simplified block diagram of various components of the two-way message cellular system of the present invention.
0040Figure 15a shows the basic message flow in a conventional system upon registration of a mobile messaging entity.
0041Figure 15b shows a flow diagram for message delivery to a mobile messaging entity.
0042Figure 16 shows another simple block diagram of a two-way cellular messaging system having a user agent and transaction and distribution servers.
0043Figure 17a shows an example of the basic message flow in the system of the present invention.
0044Figure 17b shows an example of the basic message flow for message delivery to a mobile messaging entity.
<u>Detailed Description of the Invention</u>
0045Referring to Figure 1, there is shown at <b>10</b> a two-way wireless messaging system of the present invention, which allows an originating message code from a two-way messaging device <b>11</b> to be received in a user agent <b>12</b> of a two-way messaging network <b>14</b>. The two-way messaging device <b>11</b> is illustrated throughout many of the drawings as a dedicated two-way pager. The two-way messaging device can also be an attachment to a communication device, or even integrated as part of a communication or computing device. A message can be delivered through a public switched telephone network <b>16</b> that includes a network access switch <b>18</b> connected to a telephone <b>22</b> by a first communication coupling <b>20</b> through a twisted pair line, co-axial cable, fiber optic line, wireless link or any other type of communication coupling. The messaging network <b>14</b> can also be connected to a cellular network <b>24</b> or data network <b>26</b> for transporting E-mail messages <b>27</b> to a desired destination such as a personal computer at a desired time. Additionally, messages could be forwarded to a destination through the world-wide web <b>27a</b>.
0046In accordance with the present invention, a second communication coupling <b>28</b> connects the network access switch <b>18</b> to a Network Control Point (NCP) <b>30</b> that is coupled to a database <b>32</b> via a third communication coupling <b>36</b>. The network <b>16</b> is coupled to the messaging network <b>14</b> via a fourth communication coupling <b>38</b>. The communication coupling between the two-way messaging device <b>11</b> and two-way messaging network <b>14</b> is an air interface. The messaging network <b>14</b> also may have at least one user agent <b>12</b> corresponding to a subscriber <b>40</b> (Figure 2) of the two-way wireless messaging service. The subscriber <b>40</b> receives a message from the messaging network <b>14</b> along a first communication channel <b>42</b>. These messages can include transmitted messages or replies. Messages forwarded by the two-way messaging device <b>11</b> to the messaging network <b>14</b> are forwarded along a communication return channel <b>43</b>. In the case in which messages and addresses of recipients are coded, messages received by the two-way messaging network <b>14</b> are forwarded to a user agent <b>12</b>.
0047In accordance with the present invention, the user agent <b>12</b> includes a plurality of stored messages. A predetermined message is forwarded to a desired destination such as a data network <b>26</b>, public switched telephone network <b>16</b> or a cellular network <b>24</b> in response to an originating message code that is received from a two-way messaging device <b>11</b> of the subscriber <b>40</b> along the second communication return channel <b>43</b>. This originating message code is expanded by the user agent <b>12</b> so that the downlink message to the desired destination can include full information. Also, the selected destination could be a second two-way messaging device <b>44</b> (Figure 1).
0048As shown in Figures 1 and 2, the services which can use the two-way wireless messaging system <b>10</b> vary, and can include services for sending messages to 1) a telephone <b>22</b>, 2) a computer as E-Mail <b>27</b>, and another second messaging device, such as a pager <b>44</b>. The second communication return channel <b>43</b> used by the two-way messaging device <b>11</b> and any other device not only carries new messages or replies, but also enhances the system <b>10</b> capabilities. It can be used for acknowledgements, thus allowing reliable messaging, and for signaling such as registration or location information, if available. Because the message expands in the user agent <b>12</b>, the channel bandwidth in the forward and reverse directions differs significantly, as much as a ratio of 100 (or more) to 1. This asymmetry also can exist in terms of processing power, memory storage and battery capacity between the messaging device <b>11</b> and the network <b>14</b>.
0049For purposes of discussion, a short two-way messaging scenario is first described, followed by a more detailed description of various messaging system elements and their functions.
0050Referring now to Figure 3, there is illustrated the two-way wireless messaging system having four user agents for Thomas, Dan, Mary and Paul, referred respectively as UAT <b>50</b>, UAD <b>52</b>, UAM <b>54</b> and UAP <b>56</b>.
0051Thomas can originate through his pager <b>50a</b> a message to his lunch group members, Dan, Mary and Paul, and inquire about lunch choices. The message is delivered via the two-way wireless messaging network <b>14</b> along message delivery channels <b>57a</b> (air interface), <b>57b</b> (Data network interface), <b>57c</b> (telephone network interface) as a page to a two-way messaging device in the form of a pager <b>58</b> belonging to Dan, an electronic mail to a computer <b>60</b> belonging to Mary, and a phone call to telephone <b>62</b> belonging to Paul respectively. The reply from each recipient is collected by the two-way messaging network <b>14</b> along a respective message return communication channel <b>64a, b, c</b> and forwarded back to Thomas via the first communication channel <b>42</b> as a page. The type of message return communication channel <b>64a, b, c</b> and message delivery channels <b>57a, b</b>, c vary depending on the device, such as a pager <b>58</b>, computer <b>60</b> or phone <b>62</b>.
0052In accordance with the present invention, the uplink messages are kept short because of the use of the user agents <b>50-56</b>. The user agents mirror the state and context (e.g., any address and message tables in the user agent) of their messaging devices <b>11</b> (Figure 1), <b>50a, 58</b>. In the above example, the uplink message contains a short group identifier and a message number. These are used by the user agents as indices to respective data tables in message expansion. For message reply, the uplink message contains only a reply code. This is expanded back to the full reply inside the network. By using group addressing, Thomas sends only one message uplink and the network automatically "copies" the message to the multiple recipients at the predetermined destinations.
0053Dan, Mary and Paul each receive the message in a different format, which could have been proposed by Thomas during message origination or specified as part of the filtering/forwarding criteria of the respective user agents of the recipients.
0054The criteria for filtering/forwarding can be very general. It could be based on the message originator, time of day, or any other commonly available forwarding options. Messages can also be formed in a variety of techniques. For example, Thomas can send the message as a pre-canned message with an embedded response. Thus, the message would include not only the text of the request, but would also include a list of responses to be selected and returned by the recipient.
0055Any user agent, e.g., those depicted as items <b>50-56</b>, typically maintains, among other things, an identical copy of the address and message tables as the messaging devices. The address and message information stored in the messaging device and respective user agent should always be consistent with each other. Typically, to change these address and message tables, a subscriber needs to change one copy first and the system will propagate the changes to the other.
0056There are various methods a subscriber to the messaging system can use to enter new messages or addresses. There are chiefly two main categories, i.e., through the messaging device itself, or through the messaging system.
0057For example, as illustrated in Figure 13, the messaging device <b>11</b>, e.g., a two-way pager, can include a simulated keyboard <b>69</b> displayed on the LCD screen <b>88</b>. A subscriber uses the pager buttons <b>84</b> to navigate around the simulated keyboard and select characters to compose a message. This method is tedious and applicable more to short, fixed messages. This method is not practical for making flexible messages that contain dynamic components.
0058A subscriber can also elect to add an incoming message sent by others to its own set of messages. For example, the subscriber will receive an incoming message from another individual. The subscriber may like that particular message and through an appropriate selection of buttons on the messaging device <b>11</b>, add that message to his or her own message list.
0059In still another method, many existing messaging devices such as pagers, have an input/output (i/o) port. This port could be used to connect to a laptop or a Personal Digital Assistant. A subscriber uses the laptop or PDA to edit messages and download them to the messaging device <b>11</b> via the input/output port. An appropriate protocol could be used.
0060The other major category is to use the messaging system for updating any new messages and addresses to the subscriber user agent. For example, new messages and addresses are directed to the user agent. This is one way to customize a subscriber's message and address set. The copy in the subscriber user agent is updated such as by using a dial-up program, an internet connection, a world-wide web page or even an operator to change the messages and addresses directly via wireline.
0061In still another method, the subscriber signs up for a new third-party service. When the subscriber initially signs for that service, the subscriber is given a set of messages and addresses that are used to access the service. These messages and addresses are then loaded directly into the subscriber's user agent by the service provider.
0062In the following, a more detailed description of a user agent <b>12</b> (Figure 1) and its function relative to the two-way wireless messaging system <b>10</b> (Figure 1) is set forth.
0063In accordance with the present invention, each subscriber of the two-way wireless messaging system <b>10</b> is represented by a user agent <b>12</b> that resides inside the messaging network <b>14</b>. The user agent <b>12</b> expands coded originating messages received from a two-way messaging device and provides pointers to the last known location of the two-way messaging device <b>11</b>. It also maintains the status of the two-way messaging device <b>11</b>, i.e., if it is on-line, and a profile of the subscriber. The user agent <b>12</b> also can provide some value-added functions such as message screening and selective message forwarding. The user agent <b>12</b> may also be customized by its subscriber <b>40</b>. Thus, the user agent <b>12</b> acts as a personal server for the subscriber <b>40</b>.
0064The user agent <b>12</b> also provides other benefits. Because messages are expanded inside the messaging network <b>14</b>, the bandwidth on the uplink can be reduced, allowing bandwidth asymmetry on the wireless link. By performing intelligent processing in the network instead of at the end device <b>11</b>, the enhanced power of the network is utilized. The user agent <b>12</b> manages mobility by tracking the location of the subscriber. Finally, the user agent <b>12</b> serves as a proxy for the two-way messaging device <b>11</b> when it is out of range, allowing the system <b>10</b> to account for disconnected users.
0065As shown in Figure 11, the user agent <b>12</b> can have respective fixed and extensible parts <b>70</b>, <b>72</b>. The fixed part <b>70</b> implements basic messaging functions that are generic for all user agents. It can mimic the context of a messaging device, (e.g., the address table and the message table) and maintains information about ongoing message delivery. The extensible part <b>72</b> includes user agent programs <b>72a</b>, <b>72b</b>, it can be programmed to perform specific tasks as desired by the subscriber <b>40</b> (Figure 1), e.g., maintaining a personal calendar, retrieving specific information from a world wide web page <b>27a</b>, a database <b>73</b>, where data can be input <b>73a</b>, or other similar functions. The software <b>74</b>, is associated with the user agent program to provide run time support for the system.
0066These basic functions include registration/deregistration, message delivery and message status query.
0067In registration the current location of the two-way messaging device is updated to the system as shown in Figure 4. Registration can be explicit or implicit. Explicit registration occurs when a messaging device is powered-up or when it moves into a new cluster <b>78</b> (Figure 4). Implicit registration occurs when a message is received or delivered to a messaging device. During power-up the user agent <b>12</b> can also download messages that have been received in the messaging network <b>14</b> since the last power-down of the two-way messaging device.
0068The user agent <b>12</b> allows message delivery: <ul id="ul0002" list-style="none" compact="compact"><li>(1) when the device originates a new message;</li><li>(2) when the device receives a message;</li><li>(3) when the device replies to a message; and</li><li>(4) when the device receives a reply.</li></ul>
0069Processing for groups 3 and 4 closely resembles that of groups 1 and 2. When a messaging device <b>11</b> originates a new message, the user agent <b>12</b> translates the destination and reply address aliases sent by the device into the full address and expands the supplied message number and modifier into full message text and creates a record for the message. This record can be used as a basis for any subsequent message query. When a messaging device <b>11</b> receives a message, the user agent <b>12</b> returns the current status (on/off) and location of its device. Certain personal messaging functions, e.g., forwarding or filtering can also be performed.
0070For message status query, the query request is answered by the user agent by consulting its message record and if necessary, a transaction server is consulted about current delivery status, as will be explained later.
0071The extensible portion of the user agent specifies a framework in which additional functions can be added as user agent program modules <b>72a</b>, <b>72b</b> (Figure 11). This collection of programs contain codes to handle messages of a specific pattern. The extensible part <b>72</b> follows an event-driven model and provides a kernel that pattern-matches incoming messages and dispatches them to an appropriate program module. Also, the extensible part <b>72</b> can be used for signaling by addressing a message to the user agent itself. For example, a message status query can be implemented as a signaling function in the extensible part.
0072Referring now to Figure 4, there is illustrated a basic architecture of the two-way wireless messaging system <b>10</b> of the present invention. As illustrated, the system <b>10</b> includes a three-tier hierarchy. The highest is a domain <b>80</b>; the cluster <b>78</b> is the middle; and the cell <b>82</b> is the lowest. The coverage area of a base station <b>76</b> defines a cell <b>82</b>. A collection of adjacent cells <b>82</b> form a cluster <b>78</b> and a collection of clusters form a domain <b>80</b>. Three domains are illustrated. A domain <b>80</b> is an administrative unit and each subscriber is associated with a unique domain called the "home domain". The various servers of the present invention <b>10</b> are replicated in each domain <b>80</b> and the user agent of a subscriber resides and is managed by its home domain. For purposes of description only one single domain is described. This hierarchy is designed for several important principles in the present invention: <ul id="ul0003" list-style="none" compact="compact"><li>(1) limiting the control information transmission;</li><li>(2) limiting the size of transmitted messages; and</li><li>(3) distributing functions in a modular manner.</li></ul>
0073To limit the transmission of control information by a two-way messaging device <b>11</b>, the amount of periodic signaling is reduced. For example, location updates can be minimized by defining the registration area to be a cluster <b>78</b>. Thus, the two-way messaging device <b>11</b> only re-registers with the system <b>10</b> when it crosses cluster boundaries. This can reduce the amount of signaling traffic, especially in a microcell infrastructure with high subscriber mobility. Thus, the messaging network only knows the location of a messaging device to the resolution of a cluster <b>78</b>, and a limited search is necessitated to locate a device <b>11</b> before message delivery.
0074A small cluster <b>78</b> size provides better precision of device location and a smaller messaging delay at the expense of more frequent updates. A larger cluster size, on the other hand, increases average messaging delay but requires less frequent updates. To obtain an optimal cluster size, both message arrival rate and mobility pattern should be considered.
0075The primary function of a messaging system is to transport messages among subscribers. Therefore, the usefulness of a messaging system is ultimately judged on the kind of messages that it can carry. Most existing messaging systems such as electronic mail are optimized for a wireline environment. Their messages are free-form and may even include multimedia components. In a wireless environment, the constraints of limited bandwidth and end device must be taken into account. Indeed, the challenge is to preserve as much as possible the flexibility of the messages while keeping their resource requirements under check.
0076In the present invention, we define a novel class of messages, together with their encoding and processing, which is optimized for use in wireless two-way messaging. They have been specially designed for efficient transport on asymmetric wireless links, ease of implementation in a wireless device and maximum flexibility given the input limitations of wireless messaging devices.
0077In the following, we first describe the kind of messages that are supported, then their encoding, and finally their processing.
0078A message could be one-way or two-way. A one-way message is unidirectional; it cannot be replied to. A one-way message is used in situations where a reply is not needed or desired. For example, reminder messages from a subscriber's calendar manager are typically sent as one-way messages.
0079A two-way message is a message that can be replied to. Because of the lack of a keyboard in the device, the possible replies are usually embedded as part of the original request, or pre-stored locally in the messaging device. In the following, an embedded reply is denoted by "\reply{}".
0080A message (including a reply) is constructed from a number of basic building blocks. Each type of building blocks provides a distinct way to customize a message. The building blocks can be mutually nested and their applications are governed by only some simple semantic rules.
0081The most primitive building block is plain text. As the name suggests, it refers to simple plain alphanumeric text. This corresponds essentially to what is currently available under one-way alphanumeric paging. An example of a plain text message is "Pls call me".
0082Rich text adds text attributes to plain text. Text attributes are typically used to highlight or emphasize the different parts of a message. An example of a right text message is "Pls call me \bold{now}". The notation "\bold{}" delineates the part of the message, the word "now" in this case, that should be presented in bold face. We emphasize that the notation "\bold{}" here is merely used as a high-level representation of the bold text attribute, it is not stored or transferred as part of the message. The same remark applies to all building blocks below.
0083Optional components provide a way to include or exclude parts of a message. An example of the use of an optional component is "Pls call me \optional{ASAP}". This message example represents two possible messages: <ul id="ul0004" list-style="none" compact="compact"><li>1) "Please call me"; and</li><li>2) "Please call me ASAP."</li></ul>
0084A user-defined selection allows a subscriber to specify a list of choices among which a selection can be made. An example of the use of user-defined selection is "Pls call me at my \choice{home|office}".
0085The user-defined selections are defined on a per-subscriber basis. This gives each subscriber the maximum flexibility to customize for their own needs. In many situations, however, a basic set of selections can be observed to recur across different applications. An example is the selection "\choice{Jan|Feb|...|Dec}" which allows a subscriber to choose a specific calendar month. This calls for the need of pre-defined selections. In the current example, the system could predefine "\months" to be the above selection and make it available to all subscribers.
0086Another need for pre-defined selections arises when the choices cannot be easily enumerated. For example, the system could predefine "\phoneno" to denote a selection that allows a user to enter a phone number on demand. Generally, a pre-defined selection behaves like a variable whose value can be dynamically customized by a user, thus a better name for them will be pre-defined variables.
0087In some situations, it may be advantageous to send multiple related requests in a single message. In such cases, conditional components can be used to make explicit the dependencies among the requests. As an example, consider the message "Would you like to go for lunch?" \reply{\choice{Sure|Can't make it}} \case{$r} at?\reply{\choice{McDonald|Taco Bell}} \or \esac. "$r" denotes the last reply entered. The "\case" construct uses the last reply entered to branch into different actions. In the case "Sure" is selected, the follow-up question "at? \reply{\choice{McDonald|Taco Bell}}" will be presented. In the case "Can't make it" is selected, no further action is taken.
0088At any point, a message is either stored or being transferred. Corresponding to these, there are two encodings of a message. When a message is stored, the message storage encoding is used. When a message is being transferred, the message transfer encoding is used. By making use of network states (e.g., those in the user agents), the message transfer encoding can be made much shorter than the message storage encoding, and is most suitable for use in a limited bandwidth environment.
0089We define message storage encoding first. Each type of building blocks is encoded using control information. Some require only a single control tag (e.g., \month, \phoneno), while others (e.g., \optional, \reply) require paired control tags, delimiting respectively the beginning and end of the part of the message to which the control should be applied. In order to distinguish control tags from plain text, they are chosen to be outside the range of plain text characters. As an example, consider the message "Care for lunch \optional {now} ? \replyl{\choice{OK|I am busy|may be at\time}". An example of storage encoding of this message is:
0090Care for lunch 23 now 24 ? 40 45 OK 46 I am busy 46 maybe at 10 47 41 where 23 and 24 mark respectively the beginning and end of an optional component, 40 and 41 mark respectively the beginning and end of a embedded reply component, 45 and 47 mark respectively the beginning and end of a user-defined selection, 46 separates the choices in a user-defined selection, and 10 marks the pre-defined time variable.
0091Next we turn to transfer encoding. With the use of a user agent inside the network, a message can be transferred by just naming its message number together with a modifier that specifies the customizations that need to be applied to it. For example, suppose the message above is labeled 5. Then, to originate it from a messaging device, all that needs to be transferred is: 50 if the sender does not want to include the word "now" or 51 otherwise.
0092Similarly, the possible replies to this message are encoded as: 100 if the reply is "OK", or 101 if the reply is "I am busy", or 102 time if the reply "maybe at \time" is chosen, where "time" is some encoding of the time entered by the recipient.
0093Essentially, the modifier encodes the action that needs to be taken to obtain the final message to be delivered from the stored message.
0094The message modifier is generated locally at the messaging device, the procedure is referred to as pager processing. There are two parts to pager processing, namely send-side and receiver-side processing. Send-side processing is performed when a new message is originated from a messaging device. It is typically used to customize a request. Receiver-side processing is performed when forming a reply to a previously received message It is used to customize a reply.
0095The basic processing in both send-side and a receiver-side processing is similar. They both examine a message byte by byte, identify the control tags, and perform the actions indicated. The main difference is that the send-side processing does not process control tags inside reply components, while the receiver-side processing acts only on the control tags inside reply components.
0096Referring now to Figure 9 there is illustrated one example of a messaging device that can be used with the present invention. It is illustrated as a dedicated, stand alone two-way pager <b>11</b>. In this example, the messaging device <b>11</b> generates, receives and displays messages to the subscriber user. The design of the messaging devices must take into account important hardware limitations, such as the need for minimum power consumption. As illustrated, the messaging device <b>11</b> should be business card size to provide the portability required of "any time, anywhere" service. The power consumption should be minimum, requiring infrequent battery change.
0097Figure 9 shows a representative schematic of a pager <b>11</b> having four function buttons <b>84</b> at the bottom serving as soft keys, i.e. keys whose functions vary with the contexts, and two buttons <b>86</b> on the side, used mainly for scrolling purposes. The two-way pager includes a 5-line LCD screen <b>88</b> in which the top four lines are used for text while the bottom line shows current bindings for soft keys. The pager contains computing hardware, e.g., a processor and memory for user interface code and pager protocol. A low power general purpose microprocessor can be used for the pager. Memory should be adequate enough to contain these various messages and associated data.
0098As shown in Figures 2 and 4, a base station <b>76</b> terminates the air interface and a link layer protocol with the pager <b>11</b>. It manages the air interface resources. Base stations <b>76</b> can be deployed as cellular base stations, packet radios or other types of transceivers as required for any wireless messaging and paging systems.
0099Referring now to the general overview of Figures 4 and 5, there now follows a description of the various servers used with the two-way wireless messaging system of the present invention.
0100A batch server <b>100</b> provides intelligence to base stations <b>76</b>. A single batch server <b>100</b> connects to one or more base stations <b>76</b>, and receives and acknowledges messages from the messaging device <b>11</b>. It also receives messages destined to a messaging device, forwards them to the proper base station <b>76</b> for delivery, and receives acknowledgements that the messages have been correctly received. The batch server <b>100</b> may batch downlink pages into groups for scheduled delivery to allow sleep mode operation of pagers. In essence, a batch server <b>100</b> acts as a point of transfer between the wired (network) and the wireless (subscriber and base station) portions of the system <b>10</b>. It is responsible for relaying uplink messages from subscriber devices (via base station <b>76</b>) to the network and downlink messages from the network to subscriber devices (via base stations <b>76</b>).
0101A protocol structure that can be used for interactions between the pager <b>11</b>, base station <b>76</b>, and batch server <b>100</b> is shown in Figure 6. The Message Layer Protocol (MLP) <b>102</b> is responsible for ensuring reliable message delivery between the batch server <b>100</b> and a messaging device. Each MLP <b>102</b> data unit contains one user-level message. At most one message per messaging device may be outstanding at a time. The sending entity of a message maintains a retransmission timer for the outstanding message, and retransmits the message until it receives an acknowledgement. Acknowledgments are generated by the receiving MLP entity when a message is correctly received.
0102The Airlink Specific Convergence Sublayer (ASCS) <b>104</b> operates peer-to-peer between the batch server <b>100</b> and the messaging device <b>11</b>. The ASCS <b>104</b> is responsible for segmenting MLP <b>102</b> data units into the appropriate size for transmission over the air interface, and re-assembling air interface frames into MLP data units at the receiver. ASCS <b>104</b> passes only correctly received data units to an MLP; any corrupted data units are silently discarded. The ASCS protocol specification is dependent on the air interface protocol, and as a result, many different ASCS's will exist.
0103Two link layer protocols <b>106</b>, <b>108</b> are illustrated. LINK1 <b>106</b> operates between the batch server <b>100</b> and the base station <b>76</b>. LINK2 <b>108</b> operates over the air interface and is specified by the particular air interface used in the system <b>10</b>.
0104The high-level structure of a batch server is shown in Figure 10. It maintains a number of data structures for its operation such as a registered messaging device table, which maintains a record for each messaging device currently being served by the batch server. The record includes both information about the messaging device (i.e., last base station visited) as well as traffic statistics (e.g., number of uplink/downlink messages from/to a messaging device). The wireline (network) side is indicated generally at <b>109</b>, and the wireless (subscriber and base station) side is indicated generally at <b>109a</b>.
0105A record is created in the registered messaging device table under two circumstances: an explicit registration or an implicit registration. An explicit registration in turn is performed under two conditions: power up initialization or cluster boundary crossing. The former is a new registration while the latter is a re-registration. A re-registration requires the additional step of deleting the state information kept in the old batch servers. An implicit registration, on the other hand, occurs when a base station receives a data message from a messaging device not currently registered. This is often the result of an active messaging device moving between cells in a cluster, and then sending or receiving a message. The record is deleted when a power-down deregistration is received.
0106Another data structure is Unacknowledged Message Queues (UMQs) <b>110</b>, which contain messages that are to be delivered on the downlink. They are logically organized on a per messaging device basis, though the actual implementation may be based on separate queues or a common message pool. The batch server <b>100</b> uses a stop-and-go strategy in delivering the messages, i.e., it will not deliver a new message to a messaging device <b>11</b> until the previous message to the messaging device has been acknowledged. Thus, at any particular time, there is at most one outstanding unacknowledged message.
0107When an acknowledgement is received from a messaging device, the acknowledged message (i.e., the message at the head of the queue) is moved to the Acknowledged Message Queue (AMQs) <b>112</b>. The acknowledgement is designed to be short; it contains only a so called <i>receive buffer index</i> (rbi), which is a locally unique (relative to the destination pager) identifier. The rbi is used later to correlate the reply to the original message.
0108Another data structure is the Acknowledged Message Queues <b>112</b>, which contain messages whose delivery has been acknowledged by the destination messaging devices and are currently awaiting their replies. A reply contains an rbi together with a reply code. The rbi is used to retrieve the original request; it serves essentially as a local message id, thus eliminating the need to send the system message id uplink. The reply code encodes the desired response, and is to be expanded by the replier's user agent.
0109Generally, the length of these queues is small because replies tend to follow the acknowledgements closely, in the order of about 30 minutes. A procedure could exist and be implemented by one skilled in the art to migrate the state back to the user agent if a reply does not come within a certain time limit. Thus, the AMQs behave like a cache for storing message information needed in processing a reply.
0110Depending on the air interface, the batch server <b>100</b> may also be responsible for other low-level tasks. These include the delivery of packets using a multicast operation. There are two possible forms of multicast delivery: 1) true and 2) ad-hoc. In a true multicast, messaging devices belonging to a multicast group share a single multicast address and messages are delivered using the multicast address. In an ad-hoc multicast, an address header message containing a list of destination device ID's is first sent to alert the receiving messaging devices. This is then followed by the actual body of the message.
0111Referring again to Figures 4 and 5, there is illustrated a messaging server <b>114</b>, which enhances the modularity of the system by coordinating activities of individual servers. The messaging server <b>114</b> receives originating messages, coordinates with other servers to determine their location and format in which the message should be delivered, invokes value-added services and finally routes the messages to a server which can deliver them The messaging server <b>114</b> functionality is required in all messaging systems and its operation varies depending on the intelligence and value-added services available from the messaging system.
0112The distribution server <b>116</b> is responsible for delivering messages to their final destinations in the proper format. For messages to be delivered to a wireless device such as a pager <b>11</b>, the distribution server <b>116</b> executes a direct paging algorithm based on location information provided by a user agent <b>12</b>. For messages that are to be translated into a different format, the distribution server <b>116</b> routes the message to a translator. The distribution server functions are basically required in the system <b>10</b>. If the system <b>10</b> does not make use of location information, but floods the air interfaces with messages to be delivered (true broadcast), the distribution server function is minimal.
0113The distribution server <b>116</b> works in conjunction with a user agent <b>12</b> that supplies location information, and manages user mobility in the present invention. The distribution server <b>116</b> forwards any message to be delivered to the batch server <b>100</b> that was last known to have been serving the messaging device, such as a pager <b>11</b> or other wireless device. If the batch server <b>100</b> successfully delivers the message, the distribution server <b>116</b> receives an acknowledgment and the algorithm terminates. If the batch server times-out, the distribution server <b>116</b> will forward the message to all batch servers <b>100</b> which neighbor the original target batch server. This increases the coverage area in which the message delivery is attempted. The message is not sent to the original batch server on the second delivery attempt. If the message is still not delivered, the coverage area is increased again, sending to neighboring batch servers <b>100</b> of the latest subset until the message is delivered.
0114This algorithm has several benefits. First, no single batch server <b>100</b> is included twice in the search. Second, while the distribution server <b>116</b> performs directed paging on a cluster area, the batch servers <b>100</b> may execute a directed paging algorithm among the base stations <b>76</b> within the cluster <b>78</b>. This distributed control allows base stations <b>76</b> to be added to clusters without requiring the distribution server <b>116</b> to change its directed paging algorithm search lists. The directed paging algorithms of the system <b>10</b> are designed to reduce both the air and network traffic in the paging system <b>10</b> when compared to the flooding techniques employed by many paging systems in operation today. Many variations of this basic algorithm are possible to those skilled in the art.
0115The transaction server <b>118</b> (Figures 4, 5 and 12) tracks the transactions between messaging subscribers. This involves correlating messages, replies, and acknowledgments. The transaction server <b>118</b> supports several transaction types, reports the status of transactions when requested, and closes transactions when complete. It supports one-to-one and one-to-many transactions. For example, a subscriber <b>40</b> (Figure 2) may send a message to three endpoints and request that it be only notified of the first response. In this case, the transaction server <b>118</b> will open a transaction when the message is sent, and close it when the first reply is received. Any further replies will be discarded. If a system does not support transactions, the transaction server <b>118</b> is not a required element.
0116In the system of the present invention, the transaction server <b>118</b> supports the following basic transaction types which may be combined to form a more enhanced set of transaction services: <ul id="ul0005" list-style="none" compact="compact"><li>1. All-reply</li><li>2. <i>N</i>-reply</li><li>3. Timed-reply</li></ul>
0117The all-reply transaction remains open until a reply has been received by every message recipient. The <i>N</i>-reply transaction remains open until a reply has been received by <i>N</i> message recipients. The timed-reply transaction remains open until a user specified time has expired. Once a transaction is closed, further replies are not accepted and not forwarded to the transaction originator. For example, in a transaction in which only the first three replies are accepted within five minutes, if either five minutes elapses, or three replies are received, the transaction is closed. This is an example of combining the <i>N</i>-reply and Timed-reply transaction types. All transactions are subject to a system timer which is used to close transactions that have not been completed within a reasonable amount of time.
0118A schematic diagram of one example of the structure of the transaction server is shown in Figure 12. As noted before, the transaction server <b>118</b> supports three basic transaction types: all-reply, <i>N</i>-reply, and timed-reply.
0119As shown in Figure 12, the transaction server has two levels of hierarchy: a conversation manager <b>120</b> and a transaction manager <b>122</b>. The conversation manager <b>120</b> maintains a simple two-state machine as either open <b>124</b> or closed <b>126</b> (Figure 12a). If a transaction is open, replies to the original message are expected and accepted. If the transaction is closed, no replies are accepted. The transaction manager <b>122</b> is responsible for tracking the state of each recipient involved in the transaction, and thus determine if a transaction should be closed. The transaction manager makes this decision based on the number of replies that are being accepted for a transaction, and the number of recipients <b>128</b> that have reached the done state as shown in Figure 12b. When the proper number of recipients are in the done state, the transaction manager informs the conversation manager <b>120</b> to close the transaction.
0120Consider a simple transaction with three recipients. The transaction server receives an OPENTX (open transaction) request from the messaging server <b>114</b>, and assigns a unique transaction ID to the transaction. It then initiates a conversation manager <b>120</b> to handle this request. The conversation manager <b>120</b> is indexed by the transaction ID. The conversation manager <b>120</b> transitions into its open state and initiates a transaction manager <b>122</b>. The transaction manager <b>122</b> creates three records, one for each recipient, to reflect the recipient states. The records are indexed by the recipient address. The initial states are the states labeled by "sent", signifying that the message is being sent to all three recipients.
0121The transaction server <b>118</b> also stores information concerning the transaction type. For example, the transaction server <b>118</b> determines from the transaction type how many replies should be accepted for the transaction. The transaction server also sets a deadline timer by which time the transaction must be closed. If the transaction is not a timed transaction, a default system timer, typically on the order of a day, is used. At this time, the transaction server <b>118</b> replies to the messaging server with the transaction id.
0122As acknowledgements and replies are received from the message recipients, the conversation manager <b>120</b> maintains the transaction in its open state. The transaction manager <b>122</b> modifies the state of each corresponding recipient. As acknowledgements are received for the replies, the transaction manager <b>122</b> will transition the appropriate recipients to the done state. Depending on the number of replies allowed for the transaction, the transaction server <b>116</b> determines if more replies should be accepted. When the reply limit is reached, i.e., the required number of recipients have reached the done state, the transaction manager <b>122</b> instructs the conversation manager <b>120</b> to close the transaction. The transaction manager <b>122</b> may also instruct the conversation manager <b>120</b> to close the transaction if the transaction time has expired.
0123After this time, any replies received by the transaction server <b>118</b> are rejected. The transaction server sets a record timer. Until the timer expires, the state of the conversation manager is frozen in the closed state, and recipient states are frozen. During this time, the transaction server <b>118</b> may be queried as to the state of the transaction. When the record timer expires, the transaction server <b>118</b> deletes the conversation manager <b>120</b> and transaction manager <b>122</b> for the transaction. Any queries to the transaction server <b>118</b> after this time will result in an invalid transaction ID message.
0124A simple routine flow chart is shown in Figure 12b and illustrates message transmission and acknowledgements. A message is sent <b>130</b> and acknowledgement received <b>132</b>. A reply is received from the recipient <b>134</b> and then the sequence is done <b>136</b> when the acknowledgement is received for a reply.
0125Described below is an example of a protocol flow for a multicast message delivery with replies. Focus is directed on the salient features of the system.
0126In the example, presented in Figures 7 and 8, a subscriber S <b>200</b> sends a message to three recipients, R1 <b>202,</b> R2 <b>204,</b> and R3 (not shown). In this example, R1 last registered at BS-R1, <b>222</b> and is still currently in BS-R1. R2 last registered in BS-R21, <b>230</b>, and has since moved to BS-R22, <b>232</b>. R3 is currently inactive, i.e., power off. R1 <b>202</b> receives the message on its messaging device in the first delivery attempt. R2 <b>204</b> receives messages on its messaging device on the second delivery attempt. R3 requests that the message be forwarded to a message storage server for subsequent retrieval. In the following, we illustrate the function of each entity, the location management procedures of the system, and a direct paging algorithm. The interaction with individual base stations is not included in this example. It is assumed that there is a one-to-one mapping between base stations and batch servers for simplicity.
0127Figure 7 shows a highly schematic depiction of message delivery procedures. The originator of the message, S <b>200</b>, transmits its message into the network through its serving batch server, BS-S <b>208</b>, via a PG2BS-NEW message. This PG2BS-NEW contains the address of S, an array of recipient addresses, an array of reply-to-addresses, and the coded message. In this example, the recipients listed are R1 <b>202</b>, R2 <b>204</b>, and R3 <b>206</b>, and the reply-to-address is the address of the message originator, S <b>200</b>. The message is coded by indicating a message number and any dynamic component values. BS-S <b>208</b> receives the message, and generates an acknowledgment back to S <b>200</b>, BS2PG-ACK (shown by the reversed arrow), signifying that the network has accepted the message for delivery.
0128The batch server <b>208</b> forwards the message to the messaging server, MS <b>210</b>, in a BS2MS-NEW message. In addition to the information contained in the PG2BS-NEW message, this message contains a message identifier (mid), which uniquely identifies this message throughout the system.
0129The messaging server <b>210</b> contacts the user agent of the message originator, UA-S <b>212</b>, with a MS2UA-NEW message. UA-S <b>212</b> performs the message expansion function. It expands the message body depending on the message number and dynamic component values received and expands any address aliases into the full system addresses. UA-S <b>212</b> responds to the messaging server <b>210</b> with the message body and the message type, i.e., an indication if this message requires a reply, if it is part of a transaction, or if it is a simple one-way page. In this example the message is classified as a transaction in which replies from all recipients are required. This information is sent in the UA2MS-NEW message.
0130As this point, the messaging server <b>210</b> contacts the user agents of the message recipients to determine the location of their corresponding messaging devices, the format in which they wish to receive the message, and their status. It does this by sending HDR messages to the user agents. The user agents respond with the status and last known location of the messaging devices. In this example, UA-R1 <b>214</b> responds that the messaging device is active, and that its last known location is BS-R1. UA-R2 <b>216</b> responds that the messaging device is active, and that its last known location is BS-R21. UA-R3 218 responds that its pager is off, and that the message should be forwarded to a message storage server.
0131The messaging server <b>210</b> receives these replies, and then requests that the transaction server <b>220</b> open a transaction for this message exchange via the OPENTX message. The transaction server <b>220</b> opens the transaction, and returns a transaction ID in the TXRSP message. The transaction ID uniquely identifies this transaction throughout the network, and furthermore, identifies the transaction server <b>220</b> managing this transaction. The transaction ID is forwarded to the user agent <b>212</b> of the message originator (TXUPDATE) so that it may access the transaction record if it later receives any queries as to the status of the transaction.
0132The messaging server <b>210</b> then forwards the full message body, along with the list of recipients, their desired message formats, and last known locations to the distribution server <b>221</b> (MS2DS). The distribution server <b>221</b>, based on the location information provided, and the desired format of the message, determines how to deliver the message to the recipients. It forwards the message to R1 <b>202</b> via BS-R1 <b>222</b>, and the message to R2 <b>204</b> via BS-R21, <b>230</b> as instructed by the location information received. It forwards the message for R3 to the message storage server, MSS <b>224</b>.
0133BS-R1 <b>222</b> delivers the message to R1 <b>202</b> (MSG), and eventually receives an acknowledgement (ACK). The batch BS-R1 <b>222</b> server forwards this acknowledgement to the distribution server <b>221</b>, which forwards the acknowledgement to the transaction server <b>220</b>. The transaction server <b>220</b> updates its transaction record.
0134Likewise, an acknowledgement is received from the message storage server <b>224</b> on behalf of R3. This acknowledgement is also forwarded to the distribution server <b>221</b> and transaction server <b>220</b>. In addition, the distribution server <b>221</b> updates UA-R3 <b>218</b>, notifying it of the retrieval ID by which the user may retrieve the message from storage at a later time (UPDATE). The retrieval ID is downloaded by UA-R3 <b>218</b> to R3 when R3 powers on.
0135The batch server BS-R21 <b>230</b> does not receive an acknowledgement for R2 <b>204</b>, and therefore times-out. It generates a negative acknowledgement to the distribution server <b>221</b> (NAK). The distribution server <b>221</b> executes the directed paging algorithm in which it expands the message delivery area to all batch servers neighboring the original target. In this example, these are BS-R22 <b>232</b> and S-R23 <b>234</b>. BS-R22 <b>232</b> successfully delivers the message and receives the acknowledgement. The acknowledgement is forwarded to the distribution server <b>221</b> and transaction server <b>220</b>. The distribution server <b>221</b> updates UA-R2 <b>216</b> so that it may reflect the current location information of R2 <b>204</b>. It is through this interaction between the distribution server and user agents that the approximate location of the wireless messaging devices is learned, and the direct paging algorithm is executed.
0136At this time, the message has been delivered to all recipients, and the transaction is open.
0137Figure 8 shows the flow for the reply to a message generated above. At a high level, the reply flow is symmetrical to the message origination flow. In this example, the recipient, R <b>240</b> generates the reply (REPLY), which is received by batch server BS-R <b>242</b>. The reply is again a coded message, with an identifier to associate it with the original message. The batch server <b>242</b> caches information about messages it delivers for a finite time. If the reply is received by the batch server <b>242</b> within that time period, it can determine the full message ID, transaction ID, and other ID's, from a local identifier. If the information has been removed from the cache, or if the wireless messaging device has moved to a different batch server area before sending its reply, the batch server <b>242</b> must fetch the information from the user agent of the wireless messaging device sending the reply.
0138As in the message origination case, the batch server forwards the message to the messaging server <b>244</b> which contacts the user agent of the replying device <b>246</b>. The user agent <b>246</b> expands the reply, and returns the message to the messaging server. The messaging server <b>244</b> then contacts the transaction server <b>248</b> to notify it that a reply has been generated. If the transaction is still open, and more replies are still being accepted, the transaction server <b>248</b> instructs the messaging server <b>244</b> to continue delivering the reply, as in this example. The remaining portion of the reply delivery flow is similar to the message delivery flow: the user agent <b>246</b> of the device receiving the reply is contacted to determine where to deliver the reply, and the reply is sent to the distribution server <b>250</b> for delivery.
0139When the acknowledgement for the reply is received by the distribution server <b>250</b>, it is forwarded to the transaction server <b>248</b>.
0140The two-way wireless messaging system with the present invention can be used with more than the above-illustrated examples. For example, it is conducive for dispatching where a dispatcher may transmit a message to a group of recipients in order to assign a task. For example, a maintenance supervisor can send a message to all shift workers if an outage occurs. The message recipients respond upon receiving the message indicating their availability. The supervisor may then assign a job to one or more members of the group.
0141Additionally, the two-way messaging system can be used as a calendar reminder service where reminders and alarms are generated by a network-based calendar server with the help of subscriber user agents. The messaging devices are portable, and messages can be delivered to a pager, E-mail and other messaging device. The calendar can act somewhat as an "alarm" and notify a user at any time of scheduled appointments, anniversaries and important dates. Appointments can be entered into the calendar as part of the user agent.
0142Additionally, the system can be used for emergency signaling and sending a S.O.S. message. In an emergency signaling system, a person in distress can send an S.O.S. message. This message is routed to an emergency command center. The network can indicate the location of the sender of the message using a location-based service system. The emergency command center may send messages to the person in distress to perform an initial evaluation of their condition through the use of query messages. For example, messages such as "Are you injured?", "Are you bleeding?", or "Can you move?" may be sent with reply choices. Answers collected from the initial evaluation can be extremely useful in dispatching the proper emergency response units.
0143Upon finishing dispatching (via a separate two-way message multicast as described earlier), an acknowledgment such as "Help is coming" or "Please meet the ER people at the next block" can be relayed back to the person requesting emergency help.
0144Depending on the subscriber's profile, a follow-up notification via two-way messaging could be sent to the family members of the subscriber.
0145This service takes advantage of the reliability, bidirectionality, multicast, and transaction support of the two-way messaging system.
0146Additionally, messages may be directed to subscribers in a certain location. For example, if the trains in New York are not running, all people in New. York may be sent a message. This service is similar to current simple paging services except that it is location dependent.
0147Referring now to Figures 14, 15a and 15b, there are illustrated embodiments of a more conventional two-way wireless cellular messaging system based on standards that explains the basics of a cellular system. Figures 16 and 17a, 17b illustrate the use of servers and user agent of the present invention in association with a cellular system.
0148As illustrated in Figure 14, a cellular system is illustrated generally at 300 and uses an IS-136 air interface between base stations and mobile messaging entities, and an IS-41C network node interface. The IS-136 air interface is a digital cellular air interface standard that supports functions such as mobile registration, paging to deliver calls, call origination, handoff, telephony service and exchanges messages as part of a messaging service. The IS-41C network node interface is network protocol that operates between cellular mobile switching centers, various databases used for mobility management and a messaging center 302. As illustrated in Figure 14, the cellular messaging system includes a Home Location Register 304 (HLR), Visitors Location Register 306 (VLR), a Mobile Switching Center 308 (MSC), and a Base Station 310 (BS), as is common to most conventional cellular networks. In accordance with current systems, a messaging agent 312, also referred to as Short Messaging Agent or entity (SME), generates a message to the Messaging Center 302 (MC). That message is forwarded to a Mobile Switching Center 308 for further delivery after receiving a message routing address corresponding to a desired destination. The desired destination typically is a Mobile Messaging Entity 314, which could be a two-way pager or similar device, shown by the acronym MS-SME in the drawings.
0149IS-136 supports approximately 420 channels, subsets of which are re-used in each cell of a cellular system. Each channel is capable of supporting 48.6 Kbps of traffic. The majority of channels in the system are used to support voice conversations. The remaining channels are used to support Digital Control Channels (DCCH). Each mobile station acquires a DCCH over which it exchanges control information and short messages with the cellular base stations.
0150The DCCH is divided into three forward channels (downlink) and one reverse channel (up-link). The forward channels are the Broadcast Control Channel (BCCH), Shared Control Feedback Channel (SCF), and the Short Messaging/Paging/Access Response Channel (SPACH). The BCCH is further divided into three control sub-channels, two of which are used to broadcast system information, and one, called the Short Messaging Service Broadcast Control Channel (S-BCCH), which is reserved for delivering broadcast messages as part of a messaging service. The SCF is used to provide link layer status information to support mobile station media access procedures. The SPACH, as indicated by its name, is used to deliver messages as part of a short messaging service, pages as part of call delivery in telecommunications service, and resource assignments.
0151The reverse channel is called the Random Access Control Channel (RACH). This channel is used by the mobile station to send control messages or messages that are part of a short messaging service, to the cellular base station. Link layer feedback for this channel is provided over the SCF.
0152The architecture of a messaging system based on IS-136/IS41C is shown in Figure 14. The Base Station 310 and Mobile Switching Center 308 (MSC) operate in similar capacities as in most standard cellular telephone networks. The Base Station 310 terminates the IS-136 protocol. The Home Location Register 304 HLR stores a permanent profile for each mobile messaging entity or other mobile station and a pointer to the current Visitors Location Register 306 (VLR) serving the entity. The Visitors Location Register 306 stores a temporary copy of the profile of any mobile station or mobile messaging entity, and a pointer to the Mobile Switching Center 308 with which a mobile station is currently registered. The Messaging Center is the heart of the messaging system, coordinating the activities of the other entities.
0153Figures 15 a and b show graphically the flow for message delivery to an IS-136 -based mobile station. Invocations are shown in capital letters and responses are shown in lower case letters. The messages shown in bold type are IS-136 messages. Those shown in italics are IS-41C messages. Those in regular print are representative messages defined in vendor-specific interfaces called the A-interface. In Figure 15a, a mobile messaging entity 314 registers, perhaps by powering on. The Visitors Location Register 306 stores a pointer to the serving Mobile Switching Center 308 upon receiving the REGNOT message. It forwards this message to the Home Location Register 304 which stores a pointer to the Visitor Location 306.
0154At some later time, a fixed endpoint sends messages to the Messaging Agent 312 (SMDPP), as shown in Figure 15b. The message is received by the Messaging Center 302 which queries the Home Location Register 34 to determine the location of the mobile station (SMSREQ or Mobile Messaging Entity 314). This messages contains the Mobile Identification Number (MIN) of the destination messaging entity. The request is propagated to the serving Mobile Switching Center 308 which assigns a routing address to the messaging entity (SMSADDR parameter). The routing address is returned to the Messaging Center 302 which then forwards the message to the serving Mobile Switching Center 308. The Mobile Switching Center 308 delivers the message via the Base Station 301 (SMS DELIVERY) over the messaging channel of IS-136.
0155Mobile messaging entities 314 may also initiate message exchanges. In this case, a mobile messaging entity 314 sends a message to an Messaging Center 302 via its IS-136 RACH.
0156Various classes of the system operation can be anticipation. The privacy and urgency classes are interpreted by a messaging entity; the network does not distinguish between these classes. The deferred message delivery may be explicitly requested, or activated by the network in cases when a mobile messaging entity 314 cannot be located (powered off, out of range, etc.) for message delivery. In these cases, the message is delivered when the mobile messaging entity 314 becomes active. Message updating allows a sender to overwrite a previously sent message.
0157This system has several other benefits. It can operate using the cellular network infrastructure for location management. By requiring messaging entities to register as they move, and updating Visitor Location Registers and Home Locations Registers, the network can direct messages accurately to its subscribers.
0158Several entities from the system may be added to the IS-16/IS41C cellular system to provide advance messaging capabilities in accordance with the present invention, as shown in Figure 16. The Messaging Server functions are performed by the IS-136/IS-41C Messaging Center 302. Both entities receive messages, coordinate the invocation of any other servers, and then forward the messages to another entity that can deliver them.
0159The Distribution Server 320 functions may also be subsumed in the Messaging Center, although in Figure 16 it is shown as a separate entity. In the IS-136/IS41C system, the Messaging Center 302 determines the location of the destination messaging device through interactions with the Home Location Register 304, and then forwards the message. Alternatively, this function could be performed in a similar manner by an external Distribution Server 320, as shown in Figure 16. In this case, the Messaging Center 302 would invoke any services triggered by the receipt of the message, (e.g., deferred delivery), and send the message to the Distribution Server 320 which would be responsible for delivering it. The Distribution Server 320 would interact with the Home Location Register 304 to determine the location of the destination Mobile Messaging Entity 314.
0160The user agent function is not included in the IS-136/IS-41C system. By adding a user agent 322 to the system, message expansion may be performed inside the network. This allows shorter, coded messages into the network, which saves resources on the air interface. Messages may also contain variables and selections. The user agent may also be used to provide value-added services, such as message screening. Because the IS-136/IS-41C system uses Home location Registers 304 and Visitor Location Registers 306 to track location information, the location functions of the user agent are not required in this system.
0161The transaction server functions are not included in IS-136/IS-41C. By adding a transaction server 324 to the system, value-added transaction services may be supported in the cellular messaging system. These include all of the transaction services supported in the system.
0162If user agents and transaction servers are added to the system, the procedures in the Messaging Center 302 must be modified. The Messaging Center 302 must forward incoming message request to the user agents, and must recognize when transaction services are being requested. These additions do not violate the cellular standards. The value-added servers may be implemented as adjunct processors to the Messenger Center 302 or they may be implemented as remote processors. In the former case, only the procedures of the Messaging Center 302 must be modified; no external messages are generated. In the latter case, operations must be defined between the Messaging Center and remote processors, as is the case with many telecommunications services today. These operations may be invoked using standard Signaling System No. 7 protocols, such as the Transaction Capability Application Part (TCAP).
0163Figures 17a and 17b illustrate the message distribution flow when messaging system of the present invention is used.
0164New block reference numeral designations are used for purposes of clarity. Two mobile messaging entities (MS-SME) are used. Moving from left to right, the blocks designate a first Mobile Messaging Entity (MS-SME) <b>400</b>; a Base Station (BS) <b>402</b>; Mobile Switching Center (MSC) <b>404</b>; Visitors Location Register (VLR) <b>406</b>; the sender's Home Location Register/User Agent (HLR-S/UA-S) <b>408</b>; the recipient's Home Location Register/User Agent (HLR-R/UA-R) <b>410</b>; Transaction Server (TX) <b>412</b>; Messaging Center (MC) <b>414</b>; Distribution Server (DS) <b>416</b>; and Second Mobile Messaging Entity (MS-SME) <b>418</b>. Major differences between the flow presented in Figures 17a and 17b and the flow presented in Figures 15a and 15b are described in detail. Other parts of the message flow, such as registration process are similar.
0165Figure 17a illustrates a registration process and shows that the registration flow of the Mobile Messaging Entity 400 is similar to the registration described in Figure 15a. Registration occurs in the respective user agents defined as Home Location Register/User Agents <b>408</b>, <b>410</b>.
0166Referring now to Figure 17b, the messaging flow after registration is illustrated. A first coded message SMDPP is sent from a Mobile Messaging Entity <b>418</b> to a Messaging Center <b>414</b>. The message is coded so that later message expansion occurs in the network. An acknowledgement is then sent back. Instead of going to a home location register of the recipient as in the previous example of Figure 15b, the message is forwarded to the HLR-S/UA-S <b>408</b> of the sender. In the HLR-S/UA-S <b>408</b>, message expansion occurs and the message is forwarded back to the Messaging Center <b>414</b> and then to the HLR-R/UA-R <b>410</b> of the recipient. The user agent of the recipient can do filtering, request a new format or provide location information. The user information could poll the Visitor Location Register <b>406</b> as in the current system or could bypass as shown in this example. A Home Location Register could provide location information. The message is forwarded to the Messaging Center <b>414</b>.
0167The message then is forwarded to a Transaction Server <b>412</b> to open up a transaction. The transaction is then returned to the Messaging Center <b>414</b>, and then sent to the Distribution Server <b>416</b>, which performs a directed paging algorithm. The message flow then is very similar to the previous example with the SMDPP and the acknowledgments that revert back to the Distribution Server.
0168The messaging system of the present invention has many benefits. Messaging expansion is possible within of the user agent. Additionally, the user agent can filter messages and perform other functions. Transaction support also can be current within the cellular network. The system allows directed paging and can change areas using the directed paging function, which reduces the number of needed registrations. It is not necessary to register every time a switching area is changed and there is no need for a Visitors Location Register. The Distribution Server also can perform directed paging.
0169Each server also can be deployed as desired. If directed paging algorithm is not running, then no Distribution Server is necessary. If message expansion is not needed, a user agent is not necessary. This gives added flexibility to the system. All servers are flexible.
0170While the best mode for carrying out the invention has been described in detail, those familiar with the art which the invention relates will recognize various alternative designs and embodiments practicing the invention as defined by the following claims.
12 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US11310219B2 | Cited by | United States of America | Applicant |
| EP1096725A2 | Cited by | European Patent Office (EPO) | Search report |
| US10462189B2 | Cited by | United States of America | Applicant |
| US7043262B2 | Cited by | United States of America | Applicant |
| US11956280B2 | Cited by | United States of America | Applicant |
| EP1096726A2 | Cited by | European Patent Office (EPO) | Search report |
| US2017111400A1 | Cited by | United States of America | Applicant |
| EP1320221A2 | Cited by | European Patent Office (EPO) | Search report |
| WO9945724A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US6731942B1 | Cited by | United States of America | Applicant |
| EP1320221A3 | Cited by | European Patent Office (EPO) | Search report |
| EP1096726A3 | Cited by | European Patent Office (EPO) | Search report |
| EP1096725A3 | Cited by | European Patent Office (EPO) | Search report |
| WO2011009479A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US10965718B2 | Cited by | United States of America | Applicant |
| US6401113B2 | Cited by | United States of America | Applicant |
| US6463463B1 | Cited by | United States of America | Applicant |
| EP1096727A2 | Cited by | European Patent Office (EPO) | Search report |
| US10686842B2 | Cited by | United States of America | Applicant |
| US8620365B2 | Cited by | United States of America | Applicant |
| US10476865B2 | Cited by | United States of America | Applicant |
| EP1096727A3 | Cited by | European Patent Office (EPO) | Search report |
| EP0821535A2 | Cites | European Patent Office (EPO) | Search report |
| WO9316564A1 | Cites | World Intellectual Property Organization (WIPO) | Search report |
| WO9423394A2 | Cites | World Intellectual Property Organization (WIPO) | Search report |
12 members in 5 offices; this record represents the family
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 70091496 | United States of America | A | |
| 700914 | United States of America | – | |
| US19960700914 | – | – | – |
| 700914 | – | – | – |
Members12
| Document | Office | Kind | |
|---|---|---|---|
| CA2209090A1 | Canada | A1 | |
| EP0825788A2This record | European Patent Office (EPO) | A2 | |
| JPH1094018A | Japan | A | |
| US5959543A | United States of America | A | |
| EP0825788A3 | European Patent Office (EPO) | A3 | |
| CA2209090C | Canada | C | |
| JP3272988B2 | Japan | B2 | |
| JP2002135822A | Japan | A | |
| JP3756434B2 | Japan | B2 | |
| EP0825788B1 | European Patent Office (EPO) | B1 | |
| DE69738500D1 | Germany | D1 | |
| DE69738500T2 | Germany | T2 |
30 legal events, as 4 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Change of applicant/patenteeR081 | R081 | DE | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent expired after termination of 20 yearsExpiredPE20 | PE20 | GB | |
| Expiry of rightR071 | R071 | DE | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Fee paymentPLFP | PLFP | FR | |
| Fee paymentPLFP | PLFP | FR | |
| Lien (pledge) cancelledRG | RG | FR | |
| Lien (pledge) constitutedGC | GC | FR | |
| Change of name or company nameCD | CD | FR | |
| Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)REGISTERED BETWEEN 20131031 AND 20131106732E | 732E | GB | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Fr: translation filedET | ET | EP | |
| Corresponds to:REF | REF | EP | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Designation fees paidDE FR GBAKX | AKX | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Search report despatchedORIGINAL CODE: 0009013PUAL | PUAL | EP | |
| Designated contracting statesAK | AK | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 0825788
- Publication, DOCDB
- 0825788
- Publication, EPODOC
- EP0825788
- Application
- 97306279
- Application, DOCDB
- 97306279
- Application, EPODOC
- EP19970306279
Titles3
- German
- Zwei-Wege schnurloses Nachrichtensystem mit flexibler Benachrichtigung
- English
- Two-way wireless messaging system with flexible messaging
- French
- Système de messagerie radio bi-directionnel avec messagerie flexible
Classification
- CPC, 3
- H04W4/14
- H04M3/533
- H04W92/02
- IPC, 6
- H04M3 42
- H04M3 00
- H04M3 533
- H04M11 00
- H04W4 14
- H04W92 02
Designated states18
- Contracting states, 18
- Germany
- France
- United Kingdom
- Austria
- Belgium
- Switzerland
- Denmark
- Spain
- Finland
- Greece
- Ireland
- Italy
- Liechtenstein
- Luxembourg
- Monaco
- Netherlands (Kingdom of the)
- Portugal
- Sweden