IP NAME RESOLUTION SYSTEM
FIELD OF THE INVENTION
The present invention relates to Transmission Control Protocol/Internet Protocol (TCP/IP) networks and in particular to a system for dynamically resolving IP user addresses.
BACKGROUND OF THE INVENTION
Currently, the number of Internet Protocol (IP) based networks being established around the world is growing at an incredible rate. The majority of these IP networks eventually include some sort of link to other networks. The Internet is presently by far the most popular network to connect to. The number of networks connected to the Internet grows each day. For most users of the Internet, electronic mail (e-mail) is the preferred means of communicating with other people. Today, however, Internet telephone applications are available as well as video phone applications. These applications work by digitizing some type of analog information (i.e., voice or video signals) and converting it into digital format and transmitting it from one place to another.
A major problem confronting users of these advanced communication applications is how to connect to another user. Generally, these applications require that the party to be called must be on-line at the time of placing the call. The calling party must also have a means of communicating who the called party is. Each party on the network needs a unique identifying handle or name. In addition, it would be desirable to know whether the party to be called exists at all on the network and, more particularly, whether the party is presently on-line and ready to receive calls.
SUMMARY OF THE INVENTION
Accordingly, it is an object of the present invention to provide a system of resolving names on an IP based network.
It is another object of the present invention to provide a system of resolving names that maintains a centralized location for storage of a name database.
Yet another object of the present invention is to provide a system of communications between two users that does not require a full time connection to the name database storage location.
Another object of the present invention to provide a system of communications between two users that operates by establishing a direct connection between the two users.
The present invention discloses a system of providing dynamic resolution of an IP address (e.g., an Internet IP address) to a user's personal details using one or more name resolution servers. The system can be used with applications where knowledge of a user's IP address is required in order for communications to be established. Sample applications include recently available Internet voice and video phone applications. The present invention teaches a method of connecting multiple user's on an IP network without the need for each user to have knowledge of the other's IP address. The system of the present invention eliminates the burden from users of having to know the IP address of the party they wish to communicate with. Using a soltware application incorporating the method of the present invention, a user can establish a communication link with another party without needing to know their IP address. The method comprises two separate but related processes. The first, is a registration process that runs each time a user launches the application of the present invention. The registration process inserts details about the user into a new record, if it does not already exist, in a database maintained within the name resolution server. The second, a call establishment process runs each time a user wishes to establish a communication link with another user. The call establishment process queries the database for the user's IP address using the e-mail
address as the index. Once found, a direct connection is established between the two users.
Therefore, in accordance with a preferred embodiment of the present invention, there is provided a method of dynamically resolving an Internet Protocol (IP) address of a called party in an IP network, wherein a calling party establishes a communication link directly with the called party, the method including the steps of providing a name resolution server for maintaining a database, the database having multiple records, each the record having a field for an IP address, an active status and at least one personal detail, registering the calling party within the name resolution server, registering the called party within the name resolution server, querying the database within the name resolution server for the at least one personal detail associated with the called party, transmitting an IP address associated with the at least one personal detail associated with the called party to the calling party, and establishing the direct communications link between the calling party and the called party utilizing the IP address associated with the at least one personal detail associated with the called party.
Wherein the steps of registering includes the steps of establishing a temporary link to the name resolution server, transmitting an IP address and at least one personal detail to the name resolution server, inserting the IP address and at least one personal detail into the database within the name resolution server, setting the active status field to indicate that the party associated with the IP address is currently on-line, and terminating the temporary link to the name resolution server. In addition, the IP network comprises the Internet network.
There is also provided in accordance with a preferred embodiment of the present invention a system for dynamically resolving an Internet Protocol (IP) address of a called party in an IP network, wherein a calling party establishes a communication link directly with the called party, the system including a first and second application, the first application for providing an interface to the IP network to the calling party, the second application for providing an interface to the IP network to the called party, a name resolution server temporarily coupled to the first and second applications through the IP network, a database utilized by the name resolution server, the database having
records comprising the fields of an IP address, at least one personal detail and an active status, the first and second applications operative to register the calling and the called parties, respectively, within the name resolution server, and the first application operative to query for and retrieve from the database within the name resolution server the IP address of the called party, and to subsequently establish the direct communication link between the calling and the called parties.
In addition, there is also provided in accordance with a preferred embodiment of the present invention a method of transmitting an information message to a group of users on an Internet Protocol (IP) network, the IP network being accessed by a set of users, the method including the steps of providing a name resolution server for maintaining a database, the database having multiple records, each the record having a field for an IP address, an active status and at least one personal detail, each the record associated with a single user within the set of users, registering a set of the users within the name resolution server, querying the database within the name resolution server for the at least one personal detail associated with the set of users, performance of the query resulting in the group of users, and transmitting the information message to the group of users.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention is herein described, by way of example only, with reference to the accompanying drawings, wherein:
Fig. 1 is a high level block diagram illustrating the system of the present invention applied to a sample Internet application which includes two users attempting to communicate with each other;
Fig. 2 illustrates the various data fields of the registration database maintained within the name resolution server;
Fig. 3 is a high level flow diagram illustrating the registration process of the system of the present invention; and
Fig. 4 is a high level flow diagram illustrating the process of establishing a connection using the system of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
A high level block diagram illustrating the name resolution system, generally referenced 10, of the present invention applied to a sample Internet application which includes two users, user A 20 and user B 34, attempting to communicate with each other is shown in Figure 1. User's A and B can use any communication means that permits communications over an IP network 26, such as the Internet. Such means of communication may include Internet phone products, video phone products, or any other IP network enabled communication means. User A uses application 22 to connected to IP network 26 via service provider 24. Similarly, user B uses application 32 to connect to IP network 26 via service provider 30.
System 10 functions to provide dynamic resolution of an IP address (e.g., an Internet IP address) to a user's personal details using one or more name resolution servers 28. The system can be used with applications where knowledge of a user's IP address is required in order for communications to be established. Sample applications include recently available Internet voice and video phone applications. System 10 provides a method of connecting multiple user's on an IP network without the need for each user to have knowledge of the other's IP address. As described above, users who log onto the Internet using a dial-up Internet service provider, are assigned a temporary or dynamic IP address as opposed to a static or fixed IP address. The IP address is assigned from a pool of IP addresses allocated to the service provider. A domain name IP address server assigns an IP address the moment they log in and is valid only for the duration of that particular session. The next time they log in, a different IP address is likely to be assigned.
The system of the present invention eliminates the burden from users from having to know the IP address of the party they wish to communicate with. Using a software application incorporating the method of the present invention, a user can establish a communication link with another party without needing to know their IP address. The method comprises two separate but related processes. The first, is a registration process that runs each time a user launches the application of the present invention. The second, a call establishment process runs each time a user wishes to
establish a communication link with another user. Both processes are described in more detail below.
In general, the registration process lets the name resolution server know that a user is actively logged in on the IP network (e.g., the Internet). The call establishment process operates to query the name resolution server for the IP address of the party to be called. If found, it is passed to the querying application and subsequently a direct connection is established between the two users.
Both processes make use of a registration database maintained within the name resolution server, the fields of which are illustrated in Figure 2. The table comprises fields for e-mail address, IP address, active status and a pointer to other fields. In a preferred embodiment, the e-mail field is the field that is used by users to identify themselves and other users. In a typical IP network environment, such as the Internet, the only piece of identifying information users have to identify one another is an e-mail address. It is typically rare that someone has a fixed IP address that does not change. Most of the time, with most dial-up Internet service providers, IP addresses are assigned to users on the fly. The service provider is allotted a range of IP addresses and as subscribers logon the IP addresses are assigned. These IP addresses are only associated with that user for the duration of that particular session.
Thus, a user's e-mail address is used as the index or key to finding records in the database. Referring to Figure 2. the first column in the table lists the e-mail addresses for USERA to USERX. Alternate embodiments can utilize any other item of information as long as it can uniquely identify a user. The IP address field is the user's IP address. Typically, this is assigned during the logon procedure of the service provider. An active field can comprise either a 'no' or a 'yes'. This field indicates 'yes' whenever a user is logged in and has activated the Internet application of the present invention. In addition to the above information additional fields of data may be included by referring to them using a pointer or other suitable mechanism.
Each record of the table contains information associated with one user. In addition, the data in the e-mail address column (or any other type of data chosen to
distinguish one user from another) must be unique with no two records having the same e-mail address. Similarly, the IP address data fields must also be unique.
As described earlier, before communications between two users can be established, both users must be registered. The registration process will now be described in more detail. A high level flow diagram illustrating the registration process of the system of the present invention is shown in Figure 3. With reference also to Figures 1 and 2. the first step is that the user establish a connection to IP network 26 (step 50). This can be done in any number of ways, a popular method being to dial up an Internet service provider 24, 30. Once connected to the service provider, an IP address, good for the duration of that session only, is assigned and transmitted to the connection software running on the computers used by the user.
Once a connection is established, the user then launches the application of the present invention 22, 32 (step 52). The application then determines the IP address of the computer it is running on (step 54). The application then establishes a temporary coimection indicated by dashed lines 36 (user A) and 38 (user B) to name resolution server 28 (step 56). The application then transmits the IP address of the user, their e-mail address (or, in an alternative embodiment, other identifying information) and any olher desired personal information about the user, to the name resolution server (step 58). Processing is then carried out within the same resolution server. First, it is determined whether a record with that e-mail address already exists (step 60). If an entry already exists, i.e., the user has previously registered, then it is determined whether the corresponding IP address has changed (step 64) If it has, then the new IP address is inserted into the table in place of the old one (step 66). If the user has not previously registered (i.e., there is no entry under that e-mail address), than a new record is created and the user's e-mail address. IP address and other personal details about the user are inserted into the newly created record in the table (step 62). In addition, the active field of the new record is set to 'yes" indicating that the user is currently on-line (step 68).
The registration process occurs once, each time the user launches the application 22 or 32 (Figure 1 ). To establish a communication link with another user, a call
establishment process is used, which will now be described in more detail. A high level flow diagram illustrating the process of establishing a connection using the system of the present invention is shown in Figure 4. With reference also to Figure 1 , in a preferred embodiment, a user wishing to establish a connection to another user first enters the e-mail address of the user to be called into application 22 (step 72). For example, user A 20 wishing to communicate with user B 34 would enter user B's e-mail address into application 22. As described previously, other alternative means of identifying users, other than e-mail addresses, may be employed without deviating from the principles of the invention. Application 22 then develops and sends a query to the name resolution server
(step 74). The query includes user B's e-mail address and a request for its corresponding IP address. Within the name resolution server, a search is performed for a record that contains the e-mail address of user B (step 76). If it is not found, a message is returned to user A indicating that user B is not registered, or at least not registered under that particular e-mail address (step 78). If a record was found, the active field is then checked (step 80). If the active field equals 'no' then a message is returned to user A indicating that user B is currently not on-line (step 82). If the active field equals 'yes' than a message is returned to user A which contains the IP address of user B, and optionally any other desired details (step 84). After the query has been executed, the link to the name resolution server is terminated. If the IP address for user B was found, application 22 than establishes a direct connection through IP network 26 to user B through application 32. Communications then proceed directly through IP network 26 (indicated by dashed line 40) and the name resolution server is not accessed until the occurrence of the next registration or call establishment event.
When a user wishes to terminate the application on his computer, a brief temporary link is again established to the name resolution server. During this session, a message is sent containing the user's e-mail address to the name resolution server. The active field, in the record containing the user's e-mail address, is set to 'no'. This serves lo de-register the user from the directory database maintained in the name resolution
server. Thus, other users trying to connect to this particular user will receive a message indicating that the user is not currently on-line.
In addition to resolving names on an IP network, the present invention has applications as a personal or business directory resource. When a user launches Internet application 22 or 32 (Figure 1 ). the user's 'business card' can be registered in the database within the name resolution server 28. The business card can contain any type of relevant or other useful information about the user such as name, address, business, interests, etc. Other users also on-line can search the database in the name resolution server and initiate a connection directly to other registered users using the mechanism described in Figure 4.
The present invention can also be applied to advertising or information distribution applications. At an}' given point in time, software on the name resolution server (Figure 1 ) can extract a list of active (i.e. registered) users from the database. Information messages can then be sent to a group of selected users meeting any arbitrary profile or criteria. Such information messages can be in a form of text, graphics, audio, video, pointers to other sources of information (e.g., uniform resource locators or URLs) or any other form of information transmittable over a TCP/IP network. The information messages can be sent randomly to registered users (i.e., without matching users to a profile) or can be sent in accordance to various rules. Such rules may include sending the same message to all users or sending different messages to different users, for example. The owner of the name resolution server can vary the frequency of the information messages as well as vary the rules by which the messages are sent.
While the invention has been described with respect to a limited number of embodiments, it will be appreciated that many variations, modifications and other applications of the invention may be made. Rather, the scope of the present invention is defined only by the claims that follow: