# Patent

## Title
System and method for establishing a point-to-point connection

## Abstract

A communications system including a communications network, a multiplicity of communications terminals, a monitor operative to monitor whether or not a specific user is connected to the communications network, a point-to-point connection enabler operative to conditionally allow at least one seeking user to establish a point-to-point connection with at least one other user who is in a set of sought users and an authorization request manager operative to transmit an authorization request to the at least one other user, when the at least one other user is connected to the communications network, receive a response to the authorization request from the at least one other user and transmit the response to the point-to-point connection enabler prior to the point-to-point connection enabler allowing establishment of the point-to-point connection.

## Background
This application is a continuation of U.S. patent application Ser. No. 11/598,102, filed Nov. 13, 2006, now U.S. Pat. No. 7,818,371, entitled “COMMUNICATION SYSTEM ALLOWING USERS TO KNOW ONLINE OR NETWORK STATUS OF SOUGHT USERS,” which is a continuation of U.S. patent application Ser. No. 10/127,463, filed Apr. 23, 2002, entitled “COMMUNICATION SYSTEM ALLOWING USERS TO KNOW ONLINE OR NETWORK STATUS OF SOUGHT USERS,” now U.S. Pat. No. 7,149,775, which is a continuation of U.S. patent application Ser. No. 08/791,437, filed Jan. 27, 1997, entitled “COMMUNICATION SYSTEM,” now U.S. Pat. No. 6,449,344, the contents of each of which are incorporated herein by reference.


FIELD OF THE INVENTION
The present invention relates to communications systems generally and particularly to network communications systems.
BACKGROUND OF THE INVENTION
Establishing a point-to-point connection between users who are connected via communications terminals to a communications network generally requires that the network address of each connecting user be known to all other connecting users. Many network communications service providers, such as Internet Service Providers (ISP's), assign users a different network address, such as an IP address, each time they connect to the network, making foreknowledge of a particular user's network address impossible.
Some commercial and non-commercial services maintain network servers connected to a network. Users who connect to the network provide their current network address and other identifying information to one or more of these network servers. This information is made available to other users connected to the network for purposes including point-to-point communications. Such services include Internet Relay Chat (IRC), for which software is commercially available from Surfing Squirrel Productions, Inc., Microsoft User Location Service (ULS), commercially available from Microsoft Corporation, and the Automatic Call Distribution System (ACD), commercially available from Executone Information Systems, Inc.
A user wishing to locate another user may connect to a network server that records user information in order to determine the other user's network address. A user usually locates another user by looking for the other user's electronic mail address, one or more nicknames that the other user often uses, or other identifying information. The effective use of such identifying information is limited inasmuch as a single user might have multiple electronic mail addresses, multiple users might use the same nickname, or a user might be connected via another user's network connection.
Unfortunately, services like those mentioned above do not generally provide for the unique identification of each user, thereby facilitating accurate location a specific user. Furthermore, such services require that users actively seek out other users, often from among several hundreds or thousands of users known to a server to be connected to a network at any given time. Such services also do not enable a user to limit who may access that user's identification information.
SUMMARY OF THE INVENTION
The present invention seeks to provide an improved communications system for facilitating locating a user who is connected to a communications network, preferably for the purposes of establishing point-to-point communications. A user's location on a communications network is typically expressed in terms of the user's current network address.
The communications system of the present invention preferably provides at least some and preferably all of the following advantages: a. Users may be located accurately, because each user has a permanent and unique identification code.
b. Users may be located quickly and efficiently, because the network server automatically provides a user who is currently connected to the network with a list of other users who are currently connected to the network from among a predefined list of users whose connection status the user wishes to know. c. Users are notified automatically when another user, in whom the seeking user has interest, connects to the network. d. Users may protect their privacy by limiting who may locate them.
It is noted that throughout the specification and claims the term “user” encompasses any entity, preferably human, that operates a computer or other communications terminal, preferably for the purpose of connecting to and communicating via a communications network. It is further noted that the term “seeking user” encompasses any user who wishes to locate at least one other user currently connected to the communications network. It is further noted that the term “sought user” encompasses any user whose location, typically a network address, is desired by a seeking user.
There is thus provided in accordance with a preferred embodiment of the present invention a communication system including a communications network, a multiplicity of communications terminals which are connectable to the communications network and which can be employed by users to communicate via the communications network, the user not necessarily being identified with a given communications terminal, apparatus for monitoring whether or not a user is connected to the communications network irrespective of which of the multiplicity of communications terminals that user is employing, and apparatus for annunciating to a seeking user, currently connected to the communications network via any of the multiplicity of communications terminals, network connection status information relating to other users who are in a set of sought users, which set is definable by the seeking user, and for providing the seeking user connection address information relating to those sought users who are currently connected to the communications network.
Further in accordance with a preferred embodiment of the present invention, any of the users may function as at least one of a seeking user and a sought user.
Still further in accordance with a preferred embodiment of the present invention, any of the users may function simultaneously as a seeking user and a sought user.
Further in accordance with a preferred embodiment of the present invention, the network connection status information includes an indication that a sought user is currently connected to the communications network.
Additionally in accordance with a preferred embodiment of the present invention, the network connection status information includes an indication that a sought user has currently become connected to the communications network.
Moreover in accordance with a preferred embodiment of the present invention, the network connection status information includes an indication that a sought user has currently become disconnected from the communications network.
Further in accordance with a preferred embodiment of the present invention, at least one of the users has a unique identification code.
Still further in accordance with a preferred embodiment of the present invention, the unique identification code is independent of any communications terminal.
Additionally in accordance with a preferred embodiment of the present invention, at least one server is connected to the communications network, and the apparatus for monitoring is resident in the at least one server.
Further in accordance with a preferred embodiment of the present invention, at least one server is connected to the communications network, and the apparatus for annunciating is resident in the at least one server.
Moreover in accordance with a preferred embodiment of the present invention, the communications system includes apparatus for notifying at least once that at least one of the users is currently connected to the communications network.
Further in accordance with a preferred embodiment of the present invention, the apparatus for notifying is resident in any of the multiplicity of communications terminals.
Still further in accordance with a preferred embodiment of the present invention, at least one of the users is currently connected to the communications network and has a network address, and the communications system includes apparatus for determining the network address.
Additionally in accordance with a preferred embodiment of the present invention, at least one server is connected to the communications network, and the apparatus for determining is resident in the at least one server.
Moreover in accordance with a preferred embodiment of the present invention, the apparatus for determining is resident in any of the multiplicity of communications terminals.
Further in accordance with a preferred embodiment of the present invention, the communication system includes apparatus for authorizing whether the at least one seeking user may access any of the information relating to the sought users.
Still further in accordance with a preferred embodiment of the present invention, the apparatus for authorizing is resident in any of the multiplicity of communications terminals.
Additionally in accordance with a preferred embodiment of the present invention, the communication system includes apparatus for maintaining information regarding any of the users.
Moreover in accordance with a preferred embodiment of the present invention, the apparatus for maintaining information is resident in at least one server connected to the communications network.
Further in accordance with a preferred embodiment of the present invention, at least one of the users provides information to the apparatus for maintaining information.
Still further in accordance with a preferred embodiment of the present invention, the information includes the set of sought users.
Additionally in accordance with a preferred embodiment of the present invention, the information comprises a request from a sought user to authorize whether a seeking user may access any of the information relating to the sought user.
There is also provided in accordance with a preferred embodiment of the present invention a method for indicating network connection information relating to users, the method including monitoring whether or not a user is connected to a communications network via any of a multiplicity of communications terminals, and annunciating to a seeking user, currently connected to the communications network via any of the multiplicity of communications terminals, network connection status information relating to other users who are in a set of sought users, which set is definable by the seeking user, and for providing the seeking user connection address information relating to those sought users who are currently connected to the communications network.
Further in accordance with a preferred embodiment of the present invention, at least one of the users has a unique identification code.
Still further in accordance with a preferred embodiment of the present invention, the unique identification code is independent of any communications terminal.



BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be understood and appreciated more fully from the following detailed description, taken in conjunction with the drawings in which:
FIG. 1 is a simplified pictorial illustration of a communications system constructed and operative in accordance with a preferred embodiment of the present invention, wherein a user is connecting to a communications network via a communications terminal and user information is provided to a server connected to the communications network.
FIG. 2 is a simplified pictorial illustration of a communications system constructed and operative in accordance with a preferred embodiment of the present invention, wherein a sought user is connecting to the communications network of FIG. 1, information identifying the sought user is provided to the server of FIG. 1, and wherein the server of FIG. 1 communicates information identifying the sought user to the user of FIG. 1.
FIG. 3 is a simplified pictorial illustration of a communications system constructed and operative in accordance with a preferred embodiment of the present invention, wherein the user of FIG. 1 communicates directly with the sought user of FIG. 2, having-received the sought user's network address.



Attached herewith is a microfiche appendix comprising appendices A and B which aid in the understanding and appreciation of one preferred embodiment of the invention shown and described herein. Appendices A and B taken together form a computer listing of a preferred software embodiment of the present invention.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
Reference is now made to FIG. 1 which is a simplified pictorial illustration of a communications system 10 constructed and operative in accordance with a preferred embodiment of the present invention.
Communications system 10 preferably includes a multiplicity of communications terminals 12 connectable to a communications network 14 via a multiplicity of connection media 16, which may either be wired or wireless. Communications terminals 12 are preferably operative to receive inputs from and display information to a user 18, and to transmit and receive information via communications network 14 to and from at least one server 20 that is also connected to communications network 14 via connection media 16. Server 20 is likewise operative to send and receive information via communications network 14.
Connection notification apparatus 30 is operative to receive input from communications terminal 12, in which connection notification apparatus 30 is typically resident. Communications terminal 12 signals connection notification apparatus 30 when communications terminal 12 connects to communications network 14. Connection notification apparatus 30 preferably transmits notification via communications network 14 to a connection monitor 22, which is operative to receive input via communications network 14, and which is typically resident in server 20. An address extractor 26, typically resident in server 20, is operative to determine the source network address of the notification received by connection monitor 22, to which address extractor 26 is operatively interconnected. Address extractor 26 is operative to provide the network address to information management apparatus 28, typically resident in server 20, where the address is maintained. Address extractor 26 is alternatively or additionally operative to communicate with communications terminal 12, in which address extractor 26 may alternatively or additionally reside, where address extractor 26 is operative to determine the network address of connection terminal 12 when a connection to communications network 14 is established, and to provide the network address to connection notification apparatus 30.
An annunciator 24, typically resident in server 20, is operative to receive information maintained by information management apparatus 28 and transmit this information to communications terminal 12.
Typical operation of communications system 10 is described in detail below with reference to FIGS. 1, 2, and 3.
Reference is now made to FIG. 1 which shows a user 18 establishing a connection to communications network 14, typically the Internet, using a communications terminal 12 via connection medium 16. The connection to communications network 14 is typically via a leased line or dial-up line to a network communications service provider, typically an Internet Service Provider (ISP).
At least one server 20 is typically continually connected to the communications network 14 via connection medium 16. More than one server 20 may be provided wherein all servers are preferably continually synchronized to maintain and supply the same information.
Once user 18 is connected to communications network 14, connection notification apparatus 30 notifies connection monitor 22 that user 18 is connected to communications network 14. This notification preferably includes a unique identification code predefined for user 18 and maintained in a list of connected users by information management apparatus 28. This unique identification code is preferably independent of the communications terminal 12 used by user 18. Preferably, this notification also comprises a user password for authentication of the unique identification code. This notification may also include other information such as the current network address for user 18.
Address extractor 26 preferably determines the current network address of user 18 when the user is connected to communications terminal 12. Address extractor 26 is preferably operative to extract a network address from transmission packets used in network data transmission protocols such as TCP/IP. Thus address extractor 26 may extract the current network address of user 18 from transmission packets sent by connection notification apparatus 30 to connection monitor 22. Address extractor 26 then provides the current network address for user 18 to information management apparatus 28 which maintains the address in the list of connected users.
While address extractor 26 typically communicates with information management apparatus 28 as mentioned above, address extractor 26 may alternatively or additionally communicate with communications terminal 12, providing the current network address to connection notification apparatus 30. Connection notification apparatus then transmits the network address to connection monitor 22, which provides the address to information management apparatus 28 which maintains the address in the list of connected users.
Communications terminal 12 preferably provides a list of sought users predefined by user 18 to information management apparatus 28 which maintains it. Communications terminal 12 may also provide instructions from user 18 to information management apparatus 28 regarding whether user 18 requests to be asked to explicitly authorize whether to reveal information relating to user 13 to a seeking user who requests this information. Information management apparatus 28 maintains a list of users who request to be asked for authorization.
Information management apparatus 28, upon receipt of a list of sought users from user 18 at communications terminal 12, checks the list of connected users for any sought users that are currently connected to communications network 14, typically for display on the terminal. If connected sought users are found, information management apparatus 28 causes annunciator 24 to transmit an annunciation to user 18 at communications terminal 12 wherein the annunciation typically includes the unique identification codes and network addresses for all users who are currently connected to communications network 14 and who user 18 is seeking.
Connection monitor 22 periodically polls communications terminal 12 or otherwise determines if communications terminal 12 is still connected to communications network 14 in accordance with network communications protocols well known in the art, such as TCP/IP. Alternatively or additionally, connection notification apparatus 30 periodically notifies connection monitor 22 that communications terminal 12 is still connected to communications network 14 in accordance with network communications protocols well known in the art, such as TCP/IP.
Reference is now made to FIG. 2 which shows a user 34 establishing a connection to communications network 14 preferably in the same manner as described for user 18 in FIG. 1. Once user 34 is connected, information management apparatus 28 checks the list of sought users to determine if user 34 is sought by user 18. If so, information management apparatus 28 then checks the list of connected users to determine if user 18 is still connected. If user 18 is still connected, information management apparatus 28 causes annunciator 24 to transmit an annunciation to user 18, wherein the annunciation typically includes the unique identification code for sought user 34, the current network address for sought user 34, and preferably other information provided by user 18. Information management apparatus 28 preferably also checks the list of sought users to determine if user 18 is sought by user 34 and, if so, causes annunciator 24 to transmit an annunciation to user 34 as described above.
According to another embodiment of the present invention information management apparatus 28 checks the list of users who wish to be asked for authorization to determine if user 34 wishes to explicitly authorize requests from seeking users for information regarding user 34. If explicit authorization is required from user 34, annunciator 24 transmits a request for authorization to authorization apparatus 36, typically resident in communications terminal 12. User 34 authorizes or declines the request from user 18 for location or other information relating to user 34. Authorization apparatus 36 then provides the authorization information to information management apparatus 28 which determines whether to cause annunciator 24 to transmit an annunciation to user 18.
Reference is now made to FIG. 3 which shows user 18 making a point-to-point connection with sought user 34 using the network address of sought user 34 as provided by annunciator 24 as described above with reference to FIGS. 1 and 2. It is appreciated that user 18 may establish a point-to-point connection with user 34 once user 18 possesses the network address of user 34 independent of the present invention.
A preferred method for constructing a communications system operative in accordance with a preferred embodiment of the present invention is now described:
a) Construct a communications network such as a LAN (local-area network) or a WAN (wide-are network) using a network protocol such as TCP/IP or IPX/SPX, or provide access to a communications network such as the Internet;
b) Connect a communications terminal, such as an Intel-based computer using the Microsoft Windows 95 operating system, to the communications network;
c) Connect a server, such as an Intel-based computer operating the Linux operating system, to the communications network;
d) Generate executable instructions from the computer listing of Appendix A, which is a computer listing of software components typically resident on communications terminal 12 as described above with reference to FIG. 1, and the computer listing of Appendix B, which is a computer listing of software components typically resident on server 20 as described above with reference to FIG. 1;
e) Load the executable instructions of Appendix A into the communications terminal memory and execute them; and
f) Load the executable instructions of Appendix B into the server memory and execute them.
It is appreciated that any of the software components of the present invention may, if desired, be implemented in ROM (read-only memory) form. The software components may, generally, be implemented in hardware, if desired, using conventional techniques.
It is appreciated that the particular embodiment described in the Appendices is intended only to provide an extremely detailed disclosure of the present invention and is not intended to be limiting.
It is appreciated that various features of the invention which are, for clarity, described in the context of separate embodiments may also be provided in combination in a single embodiment. Conversely, various features of the invention which are, for brevity, described in the context of a single embodiment may also be provided separately or in any suitable combination.
It will be appreciated by persons skilled in the art that the present invention is not limited by what has been particularly shown and described hereinabove. Rather the scope of the present invention is defined only by the claims which follow:

## Claims

1. A communications system comprising:
a communications network;
a multiplicity of communications terminals which are connectable to said communications network and which can be employed by a plurality of users to communicate via said communications network, wherein a given user of said plurality of users is not necessarily identified with a given communications terminal;
a monitor operative to monitor whether or not a specific user of said plurality of users is connected to said communications network irrespective of which of said multiplicity of communications terminals said specific user is employing;
a point-to-point connection enabler operative to conditionally allow at least one seeking user of said plurality of users, currently connected to said communications network via any of said multiplicity of communications terminals, to establish a point-to-point connection with at least one other user who is in a set of sought users, said set of sought users being definable by said at least one seeking user; and
an authorization request manager operative to:
transmit an authorization request to said at least one other user, when said at least one other user is connected to said communications network;
receive a response to said authorization request from said at least one other user; and
transmit said response to said authorization request to said point-to-point connection enabler prior to said point-to-point connection enabler allowing establishment of said point-to-point connection.

2. A communications system according to claim 1 and also comprising an information manager operative to maintain a list of selected users of said plurality of users who request to be asked for authorization prior to allowing a point-to-point connection to another user to be established.

3. A communications system according to claim 2 and wherein said authorization request manager is operative to determine if said at least one other user is included in said list of selected users.

4. A communications system according to claim 2 and wherein said information manager is operative to determine if said at least one other user is included in said list of selected users.

5. A communications system comprising:
a communications network;
a multiplicity of communications terminals which are connectable to said communications network and which can be employed by a plurality of users to communicate via said communications network, wherein a given user of said plurality of users is not necessarily identified with a given communications terminal;
a monitor operative to monitor whether or not a specific user of said plurality of users is connected to said communications network irrespective of which of said multiplicity of communications terminals said specific user is employing;
a point-to-point connection enabler operative to conditionally allow at least one seeking user of said plurality of users, currently connected to said communications network via any of said multiplicity of communications terminals, to establish a point-to-point connection with at least one other user who is in a set of sought users, said set of sought users being definable by said at least one seeking user;
an information manager operative to maintain a list of selected users of said plurality of users who request to be asked for authorization prior to allowing a point-to-point connection to another user to be established; and
an authorization request manager operative to determine if said at least one other user is included in said list of selected users.

6. A method for establishing a point-to-point connection, the method comprising:
monitoring, using a connection monitor, whether or not a specific user of a plurality of users is connected to a communications network via any of a multiplicity of communications terminals irrespective of which of said multiplicity of communications terminals said specific user is employing;
receiving, at a server, from at least one seeking user of said plurality of users a set of sought users, said set of sought users being definable by said at least one seeking user;
transmitting, via said communications network, an authorization request to at least one user of said set of sought users, when said at least one user of said set of sought users is connected to said communications network;
receiving, at said server, a response to said authorization request from said at least one user of said set of sought users; and
if said response is a positive response:
establishing, via said communications network, a point-to-point connection between said at least one seeking user and said at least one user of said set of sought users.

7. A method for establishing a point-to-point connection, the method comprising:
maintaining, using an information manager, a list of selected users of a plurality of users who request to be asked for authorization prior to allowing a point-to-point connection to be established with another user;
monitoring, using a connection monitor, whether or not a specific user of said plurality of users is connected to a communications network via any of a multiplicity of communications terminals irrespective of which of said multiplicity of communications terminals said specific user is employing;
receiving, at a server, a request from at least one seeking user of said plurality of users to establish a point-to-point connection with at least one other user; and
if said at least one other user is included in said list of selected users;
transmitting, via said communications network, an authorization request to said at least one other user, when said at least one other user is connected to said communications network; and
receiving a response to said authorization request from said at least one other user; and
if said response is a positive response:
establishing, via said communications network, a point-to-point connection between said at least one seeking user and said at least one other user; and

if said at least one other user is not included in said list of selected users;
establishing, via said communications network, a point-to-point connection between said at least one seeking user and said at least one other user.