1. Field of the Invention
The present invention relates generally to wireless telecommunication, Instant Messaging, and Internet chat applications and systems.
2. Background of Related Art
Internet Relay Chat (IRC), ICQ, and Instant Messaging are digital techniques allowing users of computers to communicate textual messages to one another in a real-time environment.
IRC (“Internet Relay Chat”) is a system for chatting that involves a set of rules and conventions and client/server software. Unlike older chat systems, IRC is not limited to just two participants. Conventionally, an IRC client can be downloaded to a user's computer (e.g., PC or Palm Pilot™).
IRC is based on a client-server model, or network, as shown in
Using IRC, a new chat group can be started, or an existing chat group can be joined. There is a protocol for discovering existing chat groups and their members. Perhaps the most common IRC networks are IRCnet (mostly European), Efnet (mostly North American), Undernet, and Dalnet. Popular IRC clients include mIRC for Windows, IRCle for MacOS, and irc2 (the original client) for UNIX-based operating systems.
The IRC protocol uses Transmission Control Protocol (TCP). TCP is a connection-oriented protocol used along with the Internet Protocol (IP) to send data in the form of message units between computers over the Internet. While IP takes care of handling the actual delivery of the data, TCP takes care of keeping track of the individual units of data (called packets) that a message is divided into for efficient routing through the Internet.
ICQ (“I Seek You”) is a program you can download that will let you know when friends and contacts are also online on the Internet, page them, and chat with them. In order to get maximum benefit from ICQ, both parties must have downloaded the ICQ program and have received a user identification number (UIN). The download and registration procedure are simple and enable you to send messages, files (single, multiple or whole directories), and URLs directly to your friends' desktops. In addition, you can initiate an IRC-style chat session or voice and video-voice connection and play games with other ICQ members that you are in touch with. Your contact is signaled of an incoming event as soon as it arrives and has immediate access to it.
Instant Messaging is a type of communications service that enables you to create a private chat room with another individual. Typically, an instant messaging system alerts you whenever somebody on your private list is online. You can then initiate a chat session with that particular individual.
Currently, there are several competing instant messaging systems, and no standard. Therefore, anyone a computer user would want to send an instant message to must use the same instant messaging system that the sender uses.
Conventionally, IRC, ICQ, and Instant Messaging are generally limited for use by users having a personal computer (PC) attached to the Internet.
More recently, there have been general announcements by some manufacturers of plans to develop Instant Messaging for use in a mobile handset. However, the proposed solutions apparently utilize new, vendor-specific handsets (e.g., from MOTOROLA) and a proprietary chat protocol (e.g., AOL's Instant Messenger). Thus, a user desiring to utilize such a new service must by a new mobile handset from the particular vendor including functionality to operate the necessary proprietary chat protocol.
There have also been announcements of plans to develop browser-specific software for chat. However, such solutions require a mobile handset manufacturer to load special software on the handsets, which is not a procedure that can be performed easily or properly by many consumers or carriers.
Conventional approaches or plans allowing implementation of Instant Messaging or other chat functionality in mobile handsets (e.g., wireless telephones using analog, TDMA or CDMA RF technology) do not provide for chat participation by older, currently existing mobile telephones (i.e., “mobile terminated telephones”). Moreover, the conventional approaches do not allow standard mobile telephones (i.e., not having browser-specific chat software or other proprietary software loaded) to originate a chat message.
There is a need for a technique and apparatus which allows standard mobile telephones to participate in Internet chat groups such as those provided by Instant Messaging, Internet Relay Chat (IRC), or ICQ.
In accordance with the principles of the present invention, a device and method for providing access to a channel of an Internet Relay Chat group to a mobile device comprises placing a mobile chat proxy server in a communication path between a standard Internet Relay Chat server and a wireless gateway server supporting the mobile device. The mobile chat proxy server forwards chat commands from the mobile device to the standard Internet Relay Chat server.
Another device and method of handling chat group commands between a mobile device and a chat group server in accordance with another aspect of the present invention comprises examining non-standard chat group commands transmitted by a mobile device. The standard chat group commands are forwarded based on the non-standard chat group commands to the chat group server.
Features and advantages of the present invention will become apparent to those skilled in the art from the following description with reference to the drawings, in which:
The present invention allows mobile and other devices to participate in Internet Relay Chat (IRC) groups, ICQ, and/or Instant Messenger groups using open standards (e.g., IRC). The solution allows standard mobile originated, WAP, and HDML handsets to both read (e.g., “lurk”) and to participate in chat groups, and allows standard mobile terminated handsets and pagers to read (i.e., “lurk”) in chat groups. It also allows a user to distribute a Chat session across two mobile devices: one for posting messages (e.g. a Palm VII) and one for receiving messages (e.g., a mobile-terminated phone).
In particular,
An appropriate wireless Internet gateway 106 is commercially available from TeleCommunication Systems, Inc. in Annapolis, Md. The wireless internet gateway 106 is accessed by a subscriber mobile handset 102 through a servicing short message servicing center (SMSC) 104.
Importantly, as shown in
In particular,
In
Communication between the mobile chat proxy server 100 and the wireless Internet gateway 106 uses the Java Remote Invocation Protocol (RMI). RMI is a distributed computing protocol that allows separate programs, potentially on separate computers, to exchange software objects. Using a special implementation of this protocol, a very powerful and flexible mechanism is provided for external applications (such as the mobile chat proxy server 100) to interact in an object-oriented fashion with the SMSC 104 and wireless handsets 102.
Any conventional IRC server can be used as the standard IRC server 190a shown in the
After binding to the wireless Internet gateway 106, the mobile chat proxy server 100 exchanges message objects with the wireless Internet gateway 106. The messages are of various types, including text messages to and from wireless devices such as the wireless mobile handset 102 shown in
The interface to the conventional IRC server 190a from the mobile chat proxy server 100 uses standard IRC protocol. Thus, the present invention allows the continued use of existing IRC servers 190a, with the added functionality of allowing mobile users to participate in chat groups by simply adding a mobile chat proxy server 100 as an interface device to a wireless network.
The mobile chat proxy server 100 maintains a real-time proxy connection to the conventional IRC server 190a for each mobile device, e.g., mobile handset 102. From the perspective of the IRC server 190a, connections through the mobile chat proxy server 100 appear as regular (e.g., standard conforming) IRC clients. Accordingly, chat messages from the conventional IRC server 190a are sent to a connection in the mobile chat proxy server 100, which are in turn forwarded through the wireless Internet gateway 106 to the mobile devices, e.g., mobile handset 102.
In operation, the mobile chat proxy server 100 interprets chat messages from mobile devices, and determines if and how they should be forwarded to the conventional IRC server 190a.
For example, a message with content “#ABC” will cause the mobile chat proxy server 100 to send a command to the conventional IRC server 190a that will enroll the relevant device in the #ABC chat group. At that point, the relevant mobile user will be participating in the #ABC chat group, and all other group members, Internet based or otherwise, will be aware of the new participant.
Once registered in a chat group, any non-command based messages from a mobile device will be directly forwarded by the mobile chat proxy server 100 to the conventional IRC server 190a, where they will be broadcast to all chat group members. Messages from other members of the chat group will be sent from the conventional IRC server 190a to a connection in the mobile chat proxy server 100, then to the wireless Internet gateway 106, and then finally to the mobile handset 102.
The interface between the mobile chat proxy server 100 and the wireless Internet gateway (“gateway”) 106 is unique in that the gateway acts as wireless messaging middleware in which the details of reliable transmission to the wireless destination (e.g., mobile handset 102) are hidden from the chat group clients.
In particular, using Java's RMI protocol between the mobile chat proxy server 100 and the wireless Internet gateway 106, mobile chat group clients can directly access the Queue and SMPP objects within the wireless Internet gateway 106. Most simply, mobile chat group clients can create a message object and insert it into a remote queue of the wireless Internet gateway 106. Upon doing so, the wireless Internet gateway 106 will synchronously return a unique message tracking number. The remote queue can later be queried to determine the status of delivery.
In this exemplary scenario, details regarding message delivery can be completely hidden from the mobile chat group client; whether it is delivered by SMPP, TNPP, or the Web does not matter. The mobile chat proxy server 100 utilizes the RMI interface between the mobile chat proxy server 100 and the wireless Internet gateway 106 for sending messages to the chat group participants using mobile handsets.
The mobile chat proxy server 100 also utilizes the remote SMPP interface of the wireless Internet gateway 106, which communicates with the short messaging system controller (SMSC) 104. A suitable SMSC is commercially available from TeleCommunication Systems Inc. in Annapolis, Md.
The remote SMPP interface allows mobile chat group clients to directly interact with the SMPP messaging traffic of the SMSC 104, and thus allows a mobile chat group client to send and receive SMPP message objects of various types. In the disclosed embodiment, the SMPP message types are object-oriented.
In the disclosed embodiment, an object or module named “MobileReceiver” binds to the SMPP interface of the wireless Internet gateway 106 to allow reception of mobile chat group messages. Similarly, an object or module named “MobileSender” utilizes the remote queue to allow delivery of chat group messages to wireless devices (e.g., mobile handsets) serviced by the wireless network 204.
The mobile chat proxy server 100 is able to receive SMPP messages through the remote SMPP interface from the wireless Internet gateway 106 that represent mobile originated messages from the mobile device (e.g., mobile handset 102). The mobile chat proxy server 100 is therefore able to receive chat group messages from the mobile handset 102, interpret them in the IRC context, and send appropriate standardized IRC commands to the conventional IRC server 190a.
This solution has applicability beyond regular chat groups. For instance, to subscribe to various pre-defined chat groups (i.e., Information Cafe™ chat groups), only a predefined application in the mobile chat proxy server 100 may publish messages to these chat groups. Information Café™ chat groups can be created according to the type of information that will be published by the predefined application. For example, Information Café™ chat groups might exist for hourly news updates.
Use of an IRC proxy gateway in accordance with the principles of the present invention provides front-end services to a standard IRC server. For example. the IRC proxy gateway (i.e., mobile chat proxy server 100) can provide user validation, special short messaging system (SMS) handling for certain commands (e.g., Notify, Notice, Mode, Ghost, etc.), and/or customer-requested metrics. Moreover, a mobile chat proxy server 100 provides mobile enhancements to standard IRC commands. The mobile chat proxy server 100 can utilize any appropriate operating system, e.g., UNIX or WINDOWS NT.
A core notion of the present invention is the placement of a proxy between an otherwise conventional Internet Relay Chat (IRC) server and the wireless components of a mobile system. Moreover, features such as summoning other mobile users to join a mobile originated chat group, and/or ghosting a chat session remain the same.
Finally,
When integrating with Mobile Originated handsets through the Wireless Internet Gateway and SMSC, users may issue special chat commands. In accordance with the principles of the present invention, rather than requiring upgrading of an existing IRC server base, a mobile chat proxy server 100 can be interjected between the participating client and the relevant conventional IRC server 190. In this way, the mobile chat proxy server 100 intercepts the special commands, interprets the special commands, and either acts on the special commands or forwards the special commands to the conventional IRC server 190.
For example, a chat group user may issue the command “alias*Fred”. This special command will be intercepted by the mobile chat proxy server 100, and interpreted to cause the mobile chat proxy server 100 to send an appropriate command to the conventional IRC server 190 to change the alias for the relevant mobile user to ‘Fred’.
As another example, the “summon” command may be used to allow mobile users to request other mobile users to join a particular chat group. The “summon” command is processed by the mobile chat proxy server 100 and acted on itself, without forwarding the same to the standard IRC server 190.
The specifics of the actual command strings to be entered for interpretation by the mobile chat proxy server 100 (e.g., ‘alias’, ‘summon’, etc.) may be configured by the administrator.
System requirements and analysis of the exemplary mobile chat proxy server 100 follow, together with a more detailed description of the relationship between the mobile chat proxy server 100 and the conventional IRC Server 190.
The mobile chat proxy server 100 facilitates 2-way text conversations between users of cell phones 102, web browser users 330, and/or other chat group users, e.g., Instant Messaging service users.
Several possible scenarios are accommodated by the mobile chat proxy server 100, in accordance with the principles of the present invention.
The mobile chat proxy server 100 allows mobile users to be in multiple chat groups simultaneously. However, if so, the mobile user must identify the name of the chat group a particular message is destined for. If the mobile user does not identify the name of the chat group, the mobile chat proxy server 100 can send a message back to the mobile user requesting that they identify the name of the chat group for which the message is destined. The chat server can also be configured to limit users to joining only a single chat group at a time.
Upon joining a chat group, the mobile chat proxy server 100 can send a message to the mobile user notifying him/her the name of the chat group which they have joined, e.g., “You've joined group KB as 1234”. The administrator can disable this behavior by the chat server. Unless an alias has been provided, mobile users may be identified by, e.g., the last 4 digits in their MIN (or unique derivative).
The mobile user has the ability to create an alias. The alias may be in effect for the current chat session(s). A default alias may be used, e.g., if the mobile user has defined an alias through another web provisioning application. If so, the *ALIAS* command may be used to override the default alias for the duration of the chat session in that group. The administrator can disable the user alias feature.
The mobile user's MIN number may be made invisible if the mobile user wishes. However, for mobile device-to-mobile device chat group conversation, the MIN should be present to provide the required call back information.
Preferably, the mobile chat proxy server 100 can maintain statistics, e.g., regarding the number of chat messages sent/received by each MIN, just as the SMSC 104 typically does.
The mobile chat proxy server 100 is able to connect to multiple IRC Servers by simple changes in a configuration file. All operational parameters for the Chat Server are controlled through a configuration file.
Exemplary classes which can be implemented in accordance with the principles of the present invention are shown in the following table. Of course, these classes are for exemplary purposes only. Additional and/or alternative classes may be implemented within the scope of the present invention.
Preferably, the mobile chat proxy server 100 is implemented to function while sharing a link ID, either with the wireless Internet gateway 106 or on its own. Moreover, the mobile chat proxy server 100 is preferably able to identify incoming chat requests, and to differentiate from other incoming messages (e.g., Delivery Receipts and MOE-mail requests).
Based on a particular application, mobile users may be configured or otherwise controlled to not receive a copy of chat group messages that they've sent.
In the disclosed mobile chat proxy server 100, chat group messages to mobile devices may be limited to a predetermined number of characters, e.g., as defined by the administrator. Preferably, otherwise conventional gateway services, e.g., message truncation and linking, can be utilized.
In particular, as shown in
On startup, the disclosed exemplary embodiment of a mobile chat proxy server 100 creates instances of the following primary objects for a ChatServer. These objects delegate to subclass and other objects for help.
The Config class will load the configurable parameters from a properties file, e.g., a “MOCHAT.properties” file. Preferably, the mobile chat proxy server 100 will be configurable through user options. In the disclosed embodiment, configuration information may be retrieved using the Config object class.
Transactions from cell phones may be initiated by sending a mobile originated (MO) message to address 3428 (CHAT) with the following format options:
Of particular note in
At that point, it is the job of the MessageHandler in conjunction with the ActiveSessionContainer to instantiated an instance of the IRCSession class to provide the services required by that mobile user.
In particular, as shown in
In particular, as shown in
In particular, as shown in
In theMessageHandler, once a message has been validated, it is added to the internal message queue 310. The processQueue method of the MessageHandler checks the thread periodically (e.g., every x milliseconds) or when notified of a new item. The method processQueue dispatches the message to the appropriate recipient.
In the disclosed embodiment, the message queue 310 is a first-in, first-out (FIFO) type queue. Preferably, in the message queue 310, if the message is ambiguous, it is preferably dispatched to the ConfirmationSession Container for further processing. If the message is a SUMMON with the recipient ID indicating a mobile number, then a summon SMS message will be sent to the recipient. If the message proceeds through the ambiguity test and the SUMMON test, then it will be sent to the sender's IRCSession for further handling.
In the disclosed embodiment, the MobileSummon executes within the same thread as the processQueue, but this need not necessarily be the case.
In particular, as shown in
The invention also supports mobile handsets that are natively running an IRC client. IN this case, the handset does not communicate through the SMSC but directly interacts with the chat server.
The IRC chat group solution using an IWF connection as shown in
An IRC software module in the mobile user handset 102 allows mobile users to participate in chat sessions. This IRC software module is configured to automatically connect via IWF to a specified number. Customer provided ‘ISP hardware’ such as the Ascend TNT can convert traffic from the destination modem to a direct TCP/IP connection to the Local Director. Once a connection is established, the phone appears as any standard IRC client.
In particular, when the mobile user 102 initially connects, the IRC Proxy will validate whether that user has access to the specified service. Thus, user access to packet and e-chat services may be validated against the customer database 108 upon initial connection of that mobile user 102.
In particular, as shown in
After validating the mobile user 102, the mobile chat proxy server 100 will forward all IRC traffic from the mobile user 102 to the conventional IRC server 190, after examination of all IRC commands for the mobile specific implementation.
In particular, short messaging system (SMS) administrators may be presented with an appropriate web page or web page link to connect them to the provisioning database of the Internet gateway 1101 (
For instance, administrators may assign chat privileges to subscribers by accessing a custom link in the SMS web interface. This link may activate a preformatted form for assigning chat access to a particular MIN.
SMS special enhancements may be implemented to the IRC to enhance the mobile-user's experience.
For instance,
In particular, the IRC “Notice” command may be used to initiate SMS messages to mobile handset users. This IRC “Notice” command may be used, e.g., to broadcast a message across multiple groups in an attempt to reach the destination party.
In one implementation, the mobile chat proxy server 100 will determine if the destination address for the Notice command is a MIN. If so, the Notice may be sent via the SMS to the mobile handset by way of the wireless Internet gateway 106. The wireless Internet gateway 106 can ensure that the message is successfully delivered to the mobile handset. If the Notice destination is not a MIN, then it is handled normally.
IRC allows a user to issue commands. In the disclosed embodiment, example Notice commands to transmit a message to an identified user may be formatted as:
NOTICE <user> <message>; and
PRIVMSG <user> <message>
The mobile chat proxy server 100 may enable these commands by using the SMS to notify the mobile recipient of messages directed to them.
In particular, as shown in
With the Notify command, a mobile user can request to be notified when another user accesses the conventional IRC server 190. Mobile users can utilize this feature by having SMS messages delivered to them when another user logs onto the conventional IRC server 190. In this way, mobile users can be notified when their friends are ready to chat.
Preferably, notification requests remain active for only a specified period of time on the server.
In particular, the Ghost command may be considered to be equivalent to the IRC “mode +i” command, as it is an IRC proxy implementation of the IRC “mode +i” command. Specifically, the user enters the “GHOST” command and disconnects from the conventional IRC server 190. Once disconnected, the mobile chat proxy server 100 will forward all messages received in the chat group (or channel) to the user via SMS messages through the wireless Internet gateway 106. This forwarding may be performed as long as desired, e.g., for a pre-configured, authorized, requested, or other period of time. The period of time may be system dependent.
In particular, as shown in
With the “Invite” command, the mobile user can request that the mobile chat proxy server 100 notify the specified user of a request to chat via SMS messaging. If the destination user is currently connected to IRC, they may be notified using the IRC protocol.
Preferably, a mobile chat proxy server 100 in accordance with the principles of the present invention supports the core messaging features of conventional IRC protocol as defined in RFC 1459 and as enhanced for Unicode support in the 1998 Draft IRCX specification by Microsoft. In accordance with the principles of the present invention, mobile devices (e.g., mobile handsets) desiring to lurk in a chat group, or participate in a chat group, include a native IRC client application which supports the IRC specification as defined in RFC 1459 and supporting Unicode as defined in, e.g., Microsoft Corporation's draft specification.
Preferably, the native IRC client application in the mobile device maintains a constant connection to the conventional IRC server 190 via the mobile chat proxy server 100 using the IWF for the duration of the chat session, during which time native IRC commands may be exchanged between the mobile user client and the conventional IRC server 190 as interpreted by the intervening mobile chat proxy server 100.
Preferably, a TCP/IP socket connection will be established between the terminating IWF modem and the mobile chat proxy server 100. The conventional IRC server 190 preferably has TCP/IP access to the wireless Internet gateway 106 for delivering short message system messages. The mobile handsets and the IRC client software in the conventional IRC server 190 will properly establish an IWF connection when an SMS message with appropriate callback is received and the user presses ‘talk’. A full-time Internet connection may be made available if Internet-based IRC clients will be accessing the mobile chat proxy server 100.
The invention has applicability for use by, e.g., wireless carriers, and as a portal site for mobile-terminated ghosting of chat groups.
While the invention has been described with reference to the exemplary embodiments thereof, those skilled in the art will be able to make various modifications to the described embodiments of the invention without departing from the true spirit and scope of the invention.
Number | Date | Country | |
---|---|---|---|
Parent | 09525926 | Mar 2000 | US |
Child | 12461909 | US |