APPARATUS AND METHOD FOR CREATING AUDIO FORUMS
This application claims priority to Serial No. 60/127,364 filed 1 April 1999 and 60/137.888 filed 7 June 1999.
BRIEF DESCRIPTION OF THE INVENTION
The present invention discloses an apparatus and method for hosting multiparty audio conference calls, or "forums," using a networked system of computers or other communication devices. More particularly, this invention relates to a system and method for accessing and creating audio forums using a forum controller that is accessible by each computer within the system.
BACKGROUND OF THE INVENTION
With the advent of the Internet and ever improving network technologies, it is now possible to provide voice communication over computer and communication networks such as corporate intranets and the Internet. Communication technologies which break down voice traffic into data packets for transmission over Internet protocol ("IP") networks are referred to as "voice over IP" or "NOIP" technologies. In fact, several of the major Internet portal sites, such as Excite.com, provide services which allow people who have the appropriate computer hardware to communicate with one another over the Internet using NOIP technologies. Such services are typically referred to as "chatrooms." FIG. 1 illustrates a typical chatroom. While chatrooms provide a source of entertainment, they possess drawbacks that severely limit their commercial utility.
One drawback with chatrooms is that, typically, only one person may speak at any given moment during the conversation. Chatroom providers implement the limitation of allowing only one speaker at a time to avoid data loss and to avoid confusion when the number of participants in the chatroom increases. Further, it is known in the art that when too many participants speak at the same time, the speech becomes unintelligible.
Another drawback of conventional chatrooms is that they are dispersed at different Internet protocol (IP) addresses throughout networks making it inconvenient to locate and/or join any given chatroom. Thus, if a sports fan wishes to talk to other sports fans, he must know the specific location of a specific chatroom in which the participants are discussing sports. Absent knowledge of the location, the sports fan must search the network for the IP address for such a chatroom. Often, such sites are dispersed throughout the network at essentially unrelated IP addresses. Similarly, if a participant wishes to discuss the information found on a specific website, he typically must leave that website and connect to a different IP address altogether to enter a chatroom discussing that subject matter.
In addition to presenting problems to chatroom participants, chatrooms also present difficulties to their providers. A chatroom provider typically dedicates network resources to a chatroom even if no one is currently using the chatroom because the provider must allocate a fixed name to each chatroom. Moreover, in typical configurations, the provider routes all speech in the forum through a server, requiring further network resources. Together, these network resource requirements limit the number of commercially viable chatrooms that a provider may sponsor. For these and other reasons, the chatrooms, while functional, are unsatisfactory in practice. Another voice over IP technology is found in peer-to-peer products which allow private phone conversations. While these products solve some of the problems presented by chatrooms, they too suffer drawbacks. For example, if two parties are speaking to each other using a peer-to-peer mechanism, there is no easy way for a subsequent party to join the call. As such, these peer-to-peer products lack a mechanism for a user to create a multiparty conference call or forum.
In view of the foregoing, there is a need in the art for a system and method for guiding users to forums that are of interest and for providing each user with the ability to create a forum that can be accessed by other users.
SUMMARY OF THE INVENTION
An embodiment of the invention includes a method of accessing a forum selected from a forum list that is controlled by a forum controller. The forum controller is accessible to a network of user computers. In this embodiment, a user logs into the forum controller from a user computer in the system. When the user logs in, a user profile associated with the user is transferred from the user computer, which the first user used to log into the forum controller, to the forum controller. The user profile includes a unique user identifier and a user label. The transferred profile is used by the forum controller to update an active user database by adding a record corresponding to the user to the active user database. Once the user has logged into the forum controller, a portion of the forum list is transferred to the user computer by the forum controller. A subset of this transferred list is displayed in a forums window that is present on a display screen of the user computer. The user reviews the forums displayed and has the option to select any of the displayed forums. When the user selects one of the displayed forums, the user is joined to the selected forum. When a user is added to a forum, the forum list is updated to include an entry indicating that the user has been added to the selected forum. Further, other forum participants are notified that the first user has joined the forum.
In another embodiment of the present invention, a user is queried for the name of a forum. In this embodiment, the forum controller does not provide the user with the forum list. Rather, the user must know the name of the forum. When the user designates the forum, the designated forum is verified against the forum list by the forum controller. If the forum exists in the forum list, the user is added to the forum. Further, the forum controller updates the forum list to include an entry indicating that the user has now been added to the forum. Additionally, all participants in the forum are notified that the user has been added to the forum.
In yet another embodiment, each user having access to a system of computers may create a private forum. In this embodiment, a user is queried for a name by which
to identify the private forum and a user participant, or invitee, list. Preferably, each user in the user participant list is a registered user that is represented by an entry in a registered user database. Once the user has specified a forum name, a forum having the name of the specified private forum identifier is created and the user is added to the private forum. Further, a forum list is updated to include the private forum identifier and an entry indicating that the first user has joined the forum. Each user in the invitee list is invited to join the private forum by the forum controller. A message is sent to each computer in the system that is associated with an invited user. When an invitee accepts the invitation, the invitee is added to the private forum. Further, the forum list is revised to include an entry indicating that the invitee has joined the forum and all forum participants are notified that the second user has joined the private forum.
In still another embodiment, forums are created by the operation of an Internet browser. Accordingly, a uniform resource location is viewed in an Internet browser on a computer that is connected to a system of computers. A URL module running on the computer creates a forum identifier based upon a predetermined function of the uniform resource location that is viewed in the web browser. The URL module transfers this forum identifier to a forum controller which creates a forum with the designated forum identifier and updates a forum list to include an entry corresponding to the forum. The forum list is accessible by each computer in the system of computers. Any user associated with the network of computers may join the newly created forum. Each time a user joins the forum, a forum list is updated to include an entry indicating that the user has joined the forum. When there are no longer any participants in the forum, the forum is removed from the forum list.
A final embodiment of the present invention includes a method of accessing a forum selected from a forum list that is controlled by a forum controller. The forum controller is accessible to a network of user computers. In this final embodiment, a user logs into the forum controller from a user computer in the system. When the user logs in, a user profile associated with the user is transferred from the user computer, which the first user used to log into the forum controller for, to the forum controller. The transferred profile is used by the forum controller to update an active user database by adding a record corresponding to the user to the active user database. Once the user has logged into the forum controller, the user may join a forum
associated with a forum hyperlink by selecting the forum hyperlink when it is displayed on a web page on the first computer. When the user joins the forum, a forum list is updated to include an entry indicating that the first user has joined the forum.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates a typical prior art voice chat system.
FIG. 2 illustrates a system for maintaining a forum list in accordance with one embodiment of the invention.
FIG. 3 illustrates a forum GUI window in accordance with one embodiment of the invention.
FIG. 4 illustrates a forum window in accordance with one embodiment of the invention. FIG. 5 illustrates the processing associated with accessing a forum selected from a forum list in accordance with one embodiment of the invention.
FIG. 6 illustrates a data entry window in accordance with one embodiment of the invention.
FIG. 7 illustrates the processing associated with creating a private forum in accordance with one embodiment of the invention.
FIG. 8 illustrates a data entry window that may be used to provide each user in a system with a different user identifier.
FIG. 9 illustrates a data entry window that may be used by each user in a system to designate a user label and related information. FIG. 10 illustrates a GUI that includes an Internet browser, which is viewing a particular uniform resource location, and a forum graphical user interface panel.
FIG. 11 is a detailed illustration of the processing steps that may be used to create forums and add participants to the forum in accordance with the system of FIG. 2 and FIG. 13. FIG. 12 is an illustration of a Web page including a forum hyperlink in accordance with one embodiment of the invention.
FIG. 13 illustrates a system for using a forum hyperlink to direct a user computer to join a particular forum, which is in accordance with one embodiment of the invention.
Like reference numerals refer to corresponding parts throughout the several views of the drawings.
DETAILED DESCRIPTION OF THE INVENTION
Joining A Forum
FIG. 2 illustrates a network 20 that may be operated in accordance with the present invention. The network 20 includes at least one user computer 22 and at least one server computer 24. The user computer 20 and the server computer 24 are connected by transmission channel 26, which may be any wired or wireless transmission channel. A firewall may optionally separate user computer 22 and transmission channel 26 and/or server computer 24 and transmission channel 26. The firewall serves to protect user computer 22 and/or server computer 24 from unwanted traffic. However, the firewall also limits the way in which user computers 22 may access each other across transmission channel 26.
The user computer 22 is any device that includes a Central Processing Unit (CPU) 30 connected to a memory (primary and/or secondary) 32, a network connection 36, and a user input/output ("i/o") device 38. Memory 32 typically stores computer programs, which may include a graphical user interface ("GUI") 34, a web browser 62, a preferred contact database 64, a URL module 66, and a user profile database 68. GUI 34 is used to access a forum list 46 using network connection 36. In addition, GUI 34 can present a command line interface to permit a user to directly enter the name of a forum that the user wishes to join and/or any necessary password. Browser 62 is used in some embodiments to view web pages. Contact database 64 is used in some embodiments to maintain a personalized list of preferred user contact information by a particular user. URL module 66 is a program that is used in some embodiments to coordinate the creation of forums. User profile database 68 includes pertinent information about a user, including at least a user identifier and a user label. Additional information, however, may be included in user profile database 68 in alternate embodiments. The user profile of a person is transmitted to forum controller
100 from the user profile database when the user logs into forum controller 100 from user computer 22. User computer 22 also has i/o device 38, including a visual output device (e.g., a computer monitor) for displaying GUI 34. The user i/o device 38 also includes a microphone and one or more speakers to enable audio communication between other forum participants. In a preferred embodiment, user i/o device 38 includes a full duplex sound card so that the user can listen to other forum participants at the same time that the user is speaking.
The server computer 24 includes standard server components, including a network connection device 40, a CPU 42, and a memory (primary and/or secondary) 44. The memory 44 stores a set of computer programs and files to implement the processing associated with the invention. In particular, a forum list 46, an active user database 60, a forum controller 100, and a registered user database 102, are maintained in memory 44. The forum controller 100 controls forum list 46 as will be described in further detail below. Active user database 60 contains information about each user that is logged into forum controller 100. Registered user database 102 contains information about each user that is registered to log into forum controller 100. In a preferred embodiment, a registered user is defined as a person who has been assigned a unique user identifier and has designated a descriptive user label.
Forum list 46 comprises a list of forums 48 that are present in system 20. At least one user, associated with a user computer 22, participates in each forum 48.
Thus, in this sense, at least one user computer 22 is associated with each forum. When a user computer 22 is associated with a forum, the user computer is capable of broadcasting audio, visual, and/or text messages to all other forum participants. When no user computer 22 is associated with a forum it follows that there is no user participating in the forum. When this occurs, the forum is terminated and removed from forum list 46 by forum controller 100. Each forum 48 in forum list 46 includes information such as, for example, the name of the forum 50, an indicator 52 as to whether the forum is public or private, a forum password 54, a forum category 56, and the user identifier of each forum participant 58. Each participant in each forum is associated with a user computer 22 present in system 20.
In a preferred embodiment, each participant field 58 contains a user identifier that represents a participant in the corresponding forum 48. The user identifier serves
as a pointer to a table entry in active user database 60. Table entries in active user database 60 include more detailed information about each forum participant. The table entries may include, for example, the E-mail address of each active user and/or the Internet Protocol that must be used to communicate with each user. In addition, further information about each user may be stored in an entry found in registered user database 102.
Forums 48 that have indicator 52 set to "public" are designated public forums and forums 48 that have indicator 52 set to "private" are designated private forums. Private forums are hidden in the sense that they are not listed by GUI 34. Forums 48 having a password in password field 54 are password protected forums. A user that wants to become a participant in forum 48 must provide the corresponding password 54 if the forum is password protected. Category field 56 is used to indicate the subject matter of the forum.
As previously pointed out, system 20 may include more than one server 24. Server 24 is defined herein as any computer in system 20 that includes a forum controller 100 having access to forum list 46. In some embodiments, active user database 60 may be an integral part of forum list 46 and there is no registered user database 102. However, as a practical matter, the method of the present invention is best advanced on systems in which active user database 60 is not an integral part of forum list 48 and there is a registered user database 102. In such embodiments, forum controller 100 preferably has access to active user database 60 and registered user database 102. In typical systems 20, registered user database 102 is maintained on a separate server 24, or possibly even on a user computer 22 to minimize the load on any particular computer and to maximize the overall performance of system 20. In some embodiments of system 20, the log in process to the forum list controller from a user computer 22 may be controlled by a routing routine. The routing routine determines which server 24 the log in request will be directed to based on any number of rational criteria, including the relative load of each available server 24. disk space availability, time of day, or a round-robin type algorithm. The use of a routing routine is transparent to the person logging into forum controller 100 from user computer 22.
Referring to FIGS. 3 & 4, a GUI 34 in accordance with a preferred embodiment of the invention is illustrated. GUI 34 includes a forums button 302 (FIG. 3) that may
be used to launch a forums window 400 (FIG 4). Forums window 400 is used to list public forums present in forum list 46. Each public forum is listed on a row 402. Row 402 includes a column 404 to indicate whether the public forum is password protected, the forum name (50) 406, and the number of participants (58) 408 presently in the forum. In the embodiment shown in FIG. 4, a padlock graphic is displayed next to the name of a forum in column 404 if the forum 406 is password protected. If a user presses the "Join" button 414 while a forum, such as " New Users" or "test," is highlighted in the forums window, the user is added to the forum by forum controller 100. In some embodiments, a scroll bar 410 may be used to review a large forum list. By using a GUI 34 and a Forums Window 400 each user in system 20 can rapidly access forums from one centralized location and easily join the forums of interest.
This brief description of one aspect of the invention is more clearly understood in reference to FIG. 5. FIG. 5 illustrates processing steps that may by executed in accordance with one embodiment of the invention. In the first processing step shown in FIG. 5 (step 502), a user enters in log in information necessary to log in to forum controller 100. Such log in information may be a user identifier, a user label, a password, or any combination of such information. Once the user has entered in log in information, GUI 34 accesses the profile corresponding to the user from user profile database 68 (FIG. 2) (step 504). The log in information of step 502 is combined with the profile information of step 504 to generate a log in request that is transmitted to forum controller 100 on server 24 or other designated computer (step 506). This request may include a request for only a specific category 56 of forums, such as "Sports Talk" or "Vacations." In response to the login request, forum controller logs the user in by adding the user to active user database 60. Other variants of steps 504, 506 and 508 may be used to achieve the same objective. For example, the user profile may be transferred to forum controller 100 after forum controller 100 has logged the user in. Once the user has logged in, forum controller provides a portion of forum list 46 (step 510). Only forums 48 that are designated as public, however, may be provided by forum controller 100 in step 510. The portion of the forum list 46 provided in step 510 may be determined by information stored in, for example, the user profile database 68. Such information may reflect the interests of the particular user. In alternative embodiments,
information stored in registered user database 102 may be used to determine what portion of forum list 46 to provide in step 510. For example, registered user database 102 may track the type of forums the user has accessed in the past and provide the subset of forum list 46 that matches the types of forums the user has historically accessed. The portion of forum list 46 that is provided in step 510 is displayed on the user i/o device 38 of user computer 22 (step 512), typically in a forums window, such as the forums window 400 illustrated in FIG. 4. In some embodiments, steps 510 and 512 may be an iterative process, where the user designates certain categories and "searches" forum 46 for forums of interest. Once the user selects a forum, forum controller 100 joins the user to the selected forum (step 514) and adds an entry 58 to the forum 48 thereby indicating that the user has joined the forum (step 516). If the forum that the user selects is password protected, then the user must supply the correct password 54 before step 514 is executed. If the user does not supply the correct password 54, the user will not be joined to the designated forum 48. Finally, forum participants are notified that the user has joined the forum (step 518) by sending a broadcast message to the GUI 34 of each user computer 22 associated with a participant 58 in the forum.
Because private forums are not provided to GUI 34, users who wish to participate in a private forum must specify the forum name 50 of the private forum through an interface provided by GUI 34. If the private forum is password protected, the user must additionally provide the password 54 associated with the private forum. If the user correctly identifies a forum 48 that is present in forum list 46, then the user is added to the forum 48 in the manner previously described.
At this point, a number of unique attributes of the present invention will be recognizable to those skilled in the art. A primary attribute is that a user does not have to search a large number of unrelated web sites for forums that are of interest. Further, forums can be password protected so that unwanted participants are kept out of forums. Publically available password protected forums provide commercial advantages over prior art chatrooms and peer-to-peer messaging. For example, forums of commercial interest may be password protected and the password sold for a fee. In one embodiment, passwords may be time-stamped so that they are only useful for a predetermined length of time. Yet another unique attribute is that private forums may
be created and tracked from a centralized location. Private forums provide another level of protection from unwanted participants. Finally, the list of forums provided to a user may be uniquely tailored to the interests of a user, based upon categories designated by a history database that tracks the types of forums a user is interested in.
Creating a Forum
The present invention allows any user to create a forum from any computer in system 20. Thus, instead of pressing the "join" button 414 in forums window 400 (FIG. 4), a user could press "create" button 412 to open a data entry window such as window 600 (FIG. 6). A new forum name 50 can be designated in a data entry field such as field 602. The new forum may be password protected by specifying a password in data entry field 604. If a password is supplied in field 604, the password is stored in entry 54 (FIG. 2). The forum may also be designated as public or private by toggling check box 606. Such a designation is stored in entry 52 of the corresponding forum 48 (FIG. 2). In other embodiments, the data entry window may include fields that allow the creator to designate one or more categories 56 for the forum. In still other embodiments, the creator may designate which users may participate in the forum. Such embodiments provide the same functionality as password protected forums without any requirement that potential forum participants memorize several passwords.
GUI 34 (FIG. 2) can be used to set up forums that serve the same purpose as conference calls. A conventional conference call is created by contacting all conference call parties during the call. In this sense, each member of the conference call is "invited in" by someone who is already participating in the call. Using GUI 34, a user can set up a forum using an approach that is the inverse of conventional conference calling approaches. In this inverse approach, the conference call is originated as a forum that includes one or more participants. When additional users associated with user computers 22 are ready to participate in the forum, they may "join" the forum by designating the name of the forum. In an alternative embodiment, additional users associated with user computers 22 may "join" a forum, when they are ready, by accepting an invitation to join the forum. Such invitations are typically electronic messages sent by forum controller 100 to invited participants by users
originating private forums. These electronic invitations are typically stored by user computers 22 and presented to users by GUI 34. As a private forum progresses, the one or more original participants in the forum may leave the forum without destruction of the forum. As previously discussed, in some embodiments, the forum may be password protected and thus require that all potential forum participants enter the correct password 54 even though they have been invited to the forum.
The benefits of forums hosted by a forum controller list may be further appreciated by reference to FIG. 7. FIG. 7 illustrates detailed processing steps of a preferred embodiment that may be executed to utilize the benefits of a private forum. Each user that is logged into forum controller 100 may create a private forum. Once a user has logged into forum controller 100, the user may designate the name of a forum to be created. Because the forum is a private forum, the forum name is not made available to other users of system 20. In fact, the forum name may be hashed. The user ("forum originator") may further designate the names of people that are to be invited to the private forum. The forum to be created and the invitee list is transferred to the forum controller (step 702). In response to processing step 702, forum controller 100 verifies the uniqueness of the forum name designated by the forum originator. If the forum name is sufficiently unique, the forum controller creates the forum and joins the forum originator to the forum (step 704). A forum name is considered unique if it has a sufficient number of characters and there are no other forums having the same forum name in forum list 46. Forum list 46 is updated to include an entry corresponding to the private forum and the fact that the user is added to the private forum (step 706). The forum originator is notified that the private forum has been created by GUI 34 when forum controller 100 sends a message to GUI 34 (step 708). Additionally, forum controller 100 identifies each of the users that the forum originator has invited in processing step 702. Often this identification step may require the use of active user database 60 or even, in some embodiments, registered user database 102.
Once forum controller 100 has identified each user to be invited, an invitation to join the private forum is transmitted to the GUI 34 of each user computer associated with each invitee (step 710). The invited users have the option to accept or reject the invitation. Furthermore, invited users may block such invitations if the forum
originator is on a block list stored in user profile database 68 (FIG. 2). The information sent to each invited user about the private forum in processing step 710 is carefully designed to present enough information to the invitee to be informative. However, care is taken to ensure that the forum created by the forum originator is kept confidential. Thus, even the forum participants are typically not told the name 50 of the forum. An invitee does not have to accept or reject the invitation to join the forum right away. In fact, invitations to join a forum may be scheduled long before the forum is to occur. The invitation may designate, for example, the name of the forum originator, a Re: line (purpose), and the date, time, and expected duration of the private forum. Thus the invitee may access the forum any time during the existence of the private forum, at the invitee's convenience. It is this unique property that distinguishes the private forum of the present invention from conventional conference calls. Once an invitee has accepted an invitation to a forum (step 712), the invitee is added to the forum (step 714). Therefore, the list of forums 46 is updated to reflect the fact that a new participant 58 (the invitee) has been added to the particular forum 48 (step 716). Finally, a broadcast message is sent to all participants in the private forum indicating that an additional user has joined the forum (step 718).
FIG. 8 serves to illustrate a preferred embodiment of a data entry window that may be used in the invention. The window is used by GUI 34 of a user computer 22 in system 20 to assign a user identifier to each new user. The user identifier facilitates tracking which users are participating in each forum 48. This user identifier is typically a unique serial number, such as "FireTalk ID" 802. Referring to FIG. 9 each user may also designate a user label, or nickname 902. Other information that a user may designate includes a first and last name 904. a user password 906, an E-mail address 908, an option to hide E-mail addresses 910, and an option to specify the type of Internet protocol that may be used to reach the user 912. This information may be stored in user profile database 68 (FIG. 2) and transferred to forum controller 100 during the user log in process. Such information, or a subset of the information may be stored in active user database 60 when the user is logged into forum controller 100. Further, in some embodiments, this information may be stored in registered user database 102 (FIG. 2). In a preferred embodiment, when a user is participating in a forum, the user identifier is stored in participant field 58 and serves as an index to
ι:
active user database 60 where the more user-friendly user labels 902 may be found. Thus, notification steps 518 (FIG. 5) and 718 (FIG. 7) may involve looking up the user label of each participant 58 in active user database 60 and posting the user label in a forum participant window 304 (Fig. 3) of GUI 34. The maintenance of an active user database 60 of forum participants presents a number of advantages over prior art systems. One advantage is that when a user is viewing the participants in a forum participant window 304 (Fig. 3), the user can easily add any of the forum participants to a preferred contact list that is then stored in contact database 64. For example, using FIG. 3 to illustrate, a user may click on "Dave" to add Dave to a "friends" contact list 306. When the user selects "Dave," pertinent information about "Dave" is copied from an entry corresponding to "Dave" in active user database 60, such as the E-mail address of "Dave." This information is then stored in a record in contact database 64 on user computer 20 (FIG. 2). A user can also add any of the forum participants to a "black list." Communication from forum participants who are on this black list are rejected by user computer 22 and/or by server computer 24.
URL-Centric Forum Feature
A distinct advantage of the present invention is that novel methods may be used to create forums. One such method is disclosed with reference to FIG. 10. FIG. 10 shows a typical web browser 62, such as Internet Explorer that is viewing the uniform resource location ("URL") "http://www.drapervc.com/" 1002.
A URL is a structured statement used to designate the location of a web page. A typical URL includes a protocol component which indicates the transfer protocol to be used to retrieve the web page, a domain component which specifies the host computer on which the web page resides, a directory component which indicates the directory on the host computer in which the web page is located, and a file name. See e.g., Shipley and Fish, How the World Wide Web Works, Ziff-Davis Press. Emeryville, California, 1996 which is hereby incorporated by reference. Presumably, all users in system 20 who are simultaneously viewing web page
1002 share a common interest in the contents of the web page. Using the method of the present invention, a forum can automatically be created and added to forum list 46.
In one embodiment, the forum name 50 for the URL exhibited by 2002 in FIG. 10 would be "www.drapervc.com." It will be appreciated that a forum name 50 could be either the server component of the URL, the pathname component of the URL, the filename component of the URL, or any combination of such components. Furthermore, the URL could be operated on by any predetermined function to produce a candidate forum name. An illustrative predetermined function would be one that replaces all forward slashes "/" in the URL with underscores "_". So in the example, URL 1002 would be "www drapervc com." Another predetermined function could be one that strips the top level domain name, the "com" in the example, from the end of any URL. Thus URL 1002 would become "www.drapervc." In a preferred embodiment, the URL is subjected to a predetermined function that encrypts the URL so that it cannot be accessed by users who are not viewing the same web page. For example, the URL could be subjected to a security hash. Many other functions can be envisioned and the examples presented herein merely serve to illustrate the point that any rational predetermined function or combination of such functions may be used to convert a URL address into a forum name 50.
Forums created based on some function of a URL that is being viewed by a browser 62 are recorded in forum list 46. Thus, once a first user has created a forum that is posted on list 46, additional users, using a different user computer 22 to view the same URL in a web browser 62 will become participants in the same forum. Each of these users participates in the forum 58 according to the methods discussed previously. The approach of creating forums based upon the URL address being viewed in a web browser dramatically changes the web experience. Rather than hunting for forums on unrelated web sites, a user may simply view web pages that are of interest. The likelihood that a particular user would like to speak with other people viewing the same URL is high, particularly if the content of the URL appeals to only a select audience. A representative web page, would be, for example, the technical support web page of a company.
FIG. 10 illustrates a GUI 34 that may be used by a user to enable this URL- centric forum feature. When a user toggles switch 1006 to "enable," the user will be added to public forums that are determined by the content of the URL address 1002 that the user is viewing in browser 62. Other people who are viewing the same web
page from different user computers 22, who have turned on the URL-centric forum feature may be listed in forum participant window 304. Further the forum name 50 could be listed in panel 1004. When a user toggles switch 1006 so that "enable" is not checked, the URL-centric forum feature will be disengaged. The web provides special privacy issues, however, thus in some embodiments of the present invention, every effort is made to ensure that the identity of each person visiting a particular web site is not revealed to other users. Thus, in such embodiments, the other users visiting the same web site using the URL-centric forum feature are not listed in panel 1004. GUI 34 is not required to implement the URL-centric forum feature of the present invention. GUI 34 merely serves as a convenient interface for turning on the URL-centric forum feature using switch 1006 (FIG. 10). The actual URL-centric forum feature is URL module 66 (FIG. 2). URL module 66 will be described in more detail below. When URL module 66 is running on user computer 22, the URL-centric forum feature is enabled. URL module 66 can be implemented as a plug-in to an existing browser 62. Thus, a user may turn on the URL-centric forum feature thru browser 62 without any requirement for GUI 34. In some embodiments, URL module 66 is compiled as an object that is easily incorporated into any program running on computer 22.
In a preferred embodiment, URL module 66 launches browser 62 and exploits conventional browser 62 architecture to determine which URL the browser is viewing. To illustrate this embodiment, URL module 66 may provide a unique GUI that allows a user to launch Microsoft Explorer. When the user requests the URL-centric forum feature, URL module 66 launches Microsoft Explorer and any change in the URL status of Microsoft Explorer is tracked using standard hooks. When the hook reports that a new URL is being viewed in Microsoft Explorer, URL module 66 determines whether a forum 48 corresponding to the new URL exists in forum list 46. For example, the URL will be subjected to a predetermined function such as a hash. Then a forum name 50 corresponding to the output of the hash will be searched for in forum list 44 using a look-up request. This look-up request is typically facilitated and/or regulated by forum controller 100. If a forum 48 having the appropriate forum name 50 does not exist, the forum is created by forum controller 100. Regardless of whether
the forum existed or not at the time the web page was viewed by browser 62, the user is joined to the forum until the hook reports a change in status.
One of skill in the art will appreciate that browser 62 does not have to be launched from URL module 66 in order to provide an adequate hook by which to determine the URL status of browser 62. Many different types of embodiments for determining the status of browser 62 may be envisioned and all are within the scope of the present invention. Further, no modification to existing web pages is required to enable the URL-centric forum feature. Rather, the URL-centric forum feature serves to augment web pages by providing added functionality to web pages. The URL- centric forum feature serves to improve the services and functionality of a web page and thus increase traffic to the web site. Because the URL-centric forum feature dramatically increases the utility of a web site, the URL-centric forum feature is an advantageous improvement over prior art technology.
The following example illustrates some of the utility of the URL-centric forum feature. In this example, GUI 34 (FIG. 10) is implemented as a software program named "FireTalk." FireTalk includes, in this example, an ability to execute a URL module 66 called "ShadowTalk" 1006 (FIG. 2). ShadowTalk is capable of launching a browser 62 such as Microsoft Explorer, Netscape, or Opera. When a web page is viewed using the launched browser 62, all Internet users that are viewing the same URL are placed into a forum associated with the URL. For example, all users viewing the ESPN Classic Sports web page are made participants in the ESPN web page forum. In one embodiment, when at least one user is viewing the ESPN web page, the ESPN web page forum, "www.classicsports.com." is published in the available forums window of Firetalk 1004 (FIG. 10). In a preferred embodiment, however, the URL is hashed to encrypt the URL name and the corresponding forum is designated as private so that people who are not accessing the URL may not gain entry into the forum. To continue the above example, when a user participating in the ESPN web page forum changes the web site in their browser 62 to a new web site, the user will no longer be a participant in the ESPN web page forum. Rather, the user will become a participant in the forum associated with the newly loaded web page. When there are no longer any participants in a forum generated by the URL-centric forum feature, the forum is terminated by forum controller 100. This termination feature prevents the build-up of
an excessive number of forums in forum list 46. In the illustrated embodiment, a user can turn off the URL-centric forum feature by pressing a "mute" button on GUI 34. This "mute" button can be used to turn off the URL-centric feature until a web page of interest is loaded in browser 62. Then, the user enables the URL-centric feature by disengaging the "mute" button on GUI 34.
The general nature of the URL-centric forum feature has now been disclosed. Attention now turns to a more detailed discussion of the processing steps, necessary in a preferred embodiment of the present invention, to support the URL-centric forum feature on system 20 (FIG. 2). FIG. 1 1 illustrates processing steps that are used in accordance with such an embodiment of the invention. In the first processing step, a user associated with user computer 22-1 makes a request for the URL-centric forum feature (step 1 102). Such an act may be as simple as enabling switch 1006 (FIG. 10) on GUI 34. In response to the request for the URL-centric forum feature, URL module 66 is launched or activated. In this illustrated embodiment, URL module 66 does not have an independent GUI, thus there is no change in the display of user computer 22. Furthermore, it will be appreciated that URL module 66 may be a component or module embedded within the computer code for GUI 34.
Once URL module 66 is launched or activated, URL module 66 launches browser 62 (step 1 104). Launching browser 62 from URL module 66 provides a convenient mechanism for establishing a software hook by which URL module 66 can track the URL status of browser 62. However, in alternative embodiments, URL module 66 does not launch browser 66. In fact. URL module 66 may be a plug-in added to browser 62. For example browser 62 could be Microsoft Explorer and URL module 66 could be a Browser Helper Object (BHO) type plug in. In yet other embodiments, GUI 34 and URL module 66 may be one or more plug-ins added to browser 62. Regardless of what physical embodiment is implemented, a URL is viewed in browser 62 (step 1 106) and a software hook is used to notify URL module 66 of the URL status of browser 62 (step 1 108).
As discussed previously, the actual software hook used may be any of a number of conventional software hooks, including one that uses the Microsoft BHO. In response to a change in the URL status of browser 62, URL module 66 derives a proposed forum name based on one or more predetermined functions of the URL that
browser 62 has loaded (step 1 1 10). URL module 66 then makes a request to forum controller 100 to have the user join a forum having the derived forum name (step 1 1 12). In response to the request of step 1 1 12, forum controller 100 determines if the requested forum is present in forum list 46 (FIG. 1). If there is no forum name 50 in forum list 46 with the same forum name, then forum controller 100 creates a forum having forum name 50 which is the derived forum name of step 1 1 10 (step 11 14). In a preferred embodiment, this new forum will be designated as private in field 52 (FIG. 2). Regardless of whether the forum previously existed, the user is added to the forum (step 1 1 16). Accordingly, forum list 46 is updated to reflect that the user associated with user computer 22- 1 has joined the forum (step 1 118). As discussed previously the exact architecture of participant field 58 may vary. In a preferred embodiment, however, field 58 serves as an index to a user record in active user database 60 where more information on each participant in a forum may be found.
Forum Hyperlinks
The centralized forum list 46 that is accessible to a network of user computers 22 has further advantages. One advantage is that web pages may be used as portals for gaining entry into forums in a single user step. FIG. 12 illustrates a web page that includes forum hyperlink 1202. Forum hyperlink 1202 points to a particular forum 48 in forum list 46. When a user clicks on forum hyperlink 1202 they are joined with a forum associated with forum hyperlink 1202. An advantage over prior art systems is that the forum is automatically set up by the simple act of clicking on the hyperlink. Once a user has gained entry into a forum using a forum hyperlink, the user can access all the features previously disclosed. For example, in one embodiment, the user can determine who the other participants in the forum are using a forum participant window 304 in GUI 34 (FIG. 3) which may be automatically launched when the link is selected.
FIG. 13 depicts a system 1300 in accordance with this aspect of the invention. System 1300 is identical to system 20 (FIG. 2) with the exception that there additionally exists a computer 1302 connected to transmission channel 26. Computer 1302 serves as a web page host. Computer 1302 is a standard computer including a Central Processing Unit (CPU) 1306 connected to a memory (primary and/or
secondary) 1308. The memory 1308 typically stores a number of computer programs, including a web page 1310. Web page 1310 may be written in any language such as HTML and/or Java. Additionally, there is a forum hyperlink 1312 embedded within web page 1310. The forum hyperlink may also comprise standard computer program code written in a language such as HTML and/or Java. Computer 1302 is connected to other computers in system 1300 by network connection 1304.
It will be appreciated that systems other than system 1300, in which web page 1310 resides in a client computer 22 or server computer 24 are within the scope of the present invention and that the existence of a web page on computer 1302 merely serves to best illustrate the concept of forum hyperlinks. Accordingly, using FIG. 13 to illustrate, a user will launch browser 62 on user computer 22. When the user selects web page 1310, a web page including forum hyperlink 1312 is displayed in browser 62 on user computer 22. When the user selects forum hyperlink 1312. forum hyperlink 1312 will cause user computer 22 to execute GUI 34. If the user computer 22 does not have GUI 34 installed, forum hyperlink 1312 will prompt the user associated with user computer 22 to see if GUI 34 should be installed on user computer 22. If the user requests that GUI 34 be installed on user computer 22, a copy of GUI 34 residing on computer 1302 will be installed on user computer 22 and then the newly installed GUI 34 will be executed on user computer 22. Once GUI 34 is running on user computer 22, the user will be required to log in to forum controller 100. Obviously, if GUI 34 was already running on user computer 22 and the user was already logged in to forum controller 100 when forum hyperlink 1312 was selected, the user will not be required to log in to forum controller 100 a second time. Once the user has logged into forum controller 100. forum hyperlink 1312 will direct GUI 34 to join to a particular forum 48 associated with forum hyperlink 1312. The process of joining the forum is automated because pertinent information necessary to join forum 48 was acquired from user profile database 68 and communicated to forum controller 100 when the user logged into forum controller 100. When a user has been added to a forum, forum list 46 is updated according to the processing steps described in the previous embodiments above.
It will be appreciated that web page 1310 may have a plurality of forum hyperlinks 1312, each pointing to a different forum 48. Furthermore, there may be a
plurality of web pages 1310 that each have the same forum hyperlink 1312. It will also be appreciated that a user may select a forum hyperlink when the user loads the web page into browser 62. That is, forum hyperlink 1312 may be configured in such a way that it is activated when the web page it is embedded in is loaded. For example the forum hyperlink could be a method tag that provides a hidden link to join a specific forum when the web page is loaded in browser 62.
Conclusion
While the forgoing attributes are illustrated using embodiments that include a server, the functions of the server may be sharply limited in the present invention and could even be included on user computer 22. The only requirement for the present invention is that forum controller 100 is accessible by the computers in the system so that user computers 22 know where to find the list. Once a user is added to a forum, the user may communicate with the other participants in the forum by using packets that have a formatted payload. The payload may designate the location of each forum participant. Furthermore, if one of the participants is behind a firewall, the formatted payload may include routing instructions to all other forum participants on how to contact the participant who is behind a firewall.
The foregoing descriptions of specific embodiments of the present invention are presented for the purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, obviously many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principals of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular used contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.
The foregoing invention is intended for use in telephony systems such as the apparatus and method disclosed in "Apparatus and Method for Establishing An Audio Conference In a Networked Environment," attorney reference number 10053-013-999, filed 20 July 1999, which is incorporated by reference herein.