The foregoing summary and the following detailed description are better understood when read in conjunction with the appended drawings. Exemplary embodiments are shown in the drawings, however, it is understood that the embodiments are not limited to the specific methods and instrumentalities depicted herein. In the drawings:
a and 2b are block diagrams representing exemplary discussion groups;
With reference to
To initiate conferences and discussion groups 103, members 105 may register with the conference system 100. During a registration process, a member 105 may participate in an interactive session with the system 100. In the interactive session, the member 105 provides registration information, which may include one, or in the present example, both of a unique member identifier and at least one communication handle, such as a telephone number, an instant messaging (IM) account name, and/or an email address, as examples. Registration may also be performed automatically by the conference system 100 when the member 105 accesses the conference system 100 with a communication device 107. In this case, information, such as the communications handle of the communication device 107, is determined by an application controller 110 of the conference system 100 by the communication device 107 providing its communication handle.
After a member 105 has registered with the system 100, an initiating member 105 may define a discussion group 103 to include multiple members from the members 105a-105n by providing one or more communication handles for each defined member. To participate in conferences and to be included in one or more discussion groups 103, members 105 are not required to be registered with the system 100.
With reference to
The initiating member 105a may further define other discussion groups, such as discussion group 103b, also shown in
In
In
The membership of a discussion group 103 may be defined by a group initiator and may be restricted to those defined in the group definition of the discussion group 103. Membership in a discussion group 103 may also be defined based upon a topic or theme and may be determined dynamically. For example, as members 105 access the conference system 100, members 105 are granted access to a group discussion 103 by selecting a topic of an active discussion group 103. The conference system 100 may determine the topics to present a specific member 105 based upon a comparison of criteria provided by the specific member 105 and criteria entered by an initiating member 105 of a discussion group 103. The member 105 may be an unregistered member.
With reference again to
In particular, the control software 115 may receive and transmit the registration information for members 105a-105n to register with the conference system 100. The members 105a-105n may provide their respective registration information through their respective communication devices 107a-107n. A network interface 190 may operate as a border between a network of the communication devices 107a-107n and the conference system 100. For example, in a situation where a member 105 is operating a telecommunication device 107, the network interface 190 may be a central office switch, operating to route messages between the telecommunication device 107 and the system 100. In a scenario with an internet protocol (IP) device 107, the network interface 190 may be a session border controller (SBC), acting to determine the destination of communications between the IP device 107 and the system 100. In such a scenario, where an IP network is being accessed, the SBC may further span network edge protection elements, such as firewall devices and network address translation devices.
A gateway 180 may be a network device functioning as an access point to the conference system 100 from the network interface 190. Thus the gateway 180 receives communications from the devices 107a-107n. The gateway 180 operates to process control protocols as well as to trans-code audio and video streams. The gateway 180 may transmit and receive real-time audio and video streams from and to the application controller 110, an interactive voice response (IVR) component 140, an audio/video mixer component 150, and a message center component 160.
The IVR component 140 functions to receive audio prompts and collect touch tone and/or audio responses. The audio/video mixer component 150 acts as a conference bridge, functioning to provide audio and/or video conferencing between the devices 107a-107n.
The control software 115 may further function to receive and transmit discussion group information, such as the creation of a discussion group 103. The discussion group information may include a group identifier as well as member identifiers of the members 105a-105n to be included in the discussion group 103. The discussion group information may be provided to the conference system 100 through a device 107 of a group member 105 acting as a group initiator. The network interface 190 may operate as the border between the conference system 100 and the device 107 of the group member 105 acting as the group initiator.
A further function of the control software 115 may be to initiate a conference for a discussion group 103. The group member 105 acting as a group initiator may contact the conference system 100, through, for example, a telephone number or internet address, and may indicate a request to begin a conference with the discussion group 103. A group identifier may be included in the indication by the initiating member 105. The control software 115 may obtain the group information related to the received group identifier.
A database 130 may be used for the storage of the group information. The database 130 may be a standard, relational database and may contain real-time information related to the group information as well as the member information. The database may organize the discussion groups 103 by group identifiers and may organize the members 105a-105n by member identifiers.
The control software 115, upon receiving a group identifier from the initiating group member 105, may access the database 130 and obtain, from the database 130, the group information. In this manner, the control software 115 has access to the member information related to the discussion group 103 for which a conference is to be initiated, which includes the communication handle of each member 105 of the discussion group 103.
To begin a conference, the control software 115 may contact each member 105a-105n belonging to the discussion group 103 indicated by the group identifier in the request. The contact may be made by using one or more of the known communication handles of each member 105a-105n belonging to the discussion group. The control software 115 communicates with each device 107 of the desired group members 105a-105n through the gateway 180. The gateway 180 interfaces with the network interface 190, which, as described above, may operate to route the communication of a conference with the discussion group 103 to each member 105a-105n. The communication indicating a conference may be in the form of a text message, an email message, an instant message (IM), and/or a voice message, ring tone depending upon the type of device. Alternately, when a member 105a-105n registers with the conference system 100, each member 105a-105n may indicate a communication preference to be used to inform the member 105 of the start of a conference.
If a member 105, from the members 105a-105n, wishes to participate in the conference of the discussion group 103, the member 105 may contact the conference system 100. The form of communication to be used for contacting the conference system 100 may be provided to the member 105 in the conference communication. Alternately, each member 105 may be made aware of a communication mechanism when registering with the system 100. Upon communication with the conference system 100, by, for example, a telephone call, email, or text message, the control software 115 validates the member 105. The validation may include obtaining the communication handle of the member 105, accessing the database 130 to determine the discussion groups 103 to which the member 105 belongs, determining if a conference is in progress for the discussion groups 103 to which the member 105 belongs, and connecting the member 105 to the conference.
The control software 115 may also operate to regulate a number of members 105 participating in the conference. A pre-determined threshold number of members 105 may be established by the initiating group member 105 when creating the discussion group 103 or when initiating the conference. Alternatively, the pre-determined threshold number for the conference may be established by the conference system 100. The control software 115 operates to monitor the number of members 105 participating in the conference and may determine if the number participating exceeds the pre-determined threshold number. If the pre-determined threshold number is exceeded, the control software operates to redistribute the members 105. A new conference may be created for each member 105 attempting to join the conference after the pre-determined threshold has been reached. Any member 105 of the discussion group 103 who subsequently attempts to join the conference will be moved to the new conference. Alternatively, members 105 currently participating in the conference may also be moved to the new conference. The move of members 105 to the new conference may be randomly determined or may be performed based upon parameters established by the initiating group member or based upon pre-determined parameters.
The control software 115 may further operate to provide conference messages to members 105, from the group of members 105a-105n belonging to the discussion group 103, who did not participate in the conference. The control software 115 may determine the participating members 105 by examining the communication handles involved in the conference. By comparing those handles to the handles identified in the group information stored by group identifier in the database 130, the control software 115 may subsequently determine those non-participating members 105. Alternatively, conference messages may be provided to a subset of members 105 of the discussion group 103. The subset may be dynamically determined for the specific discussion group 103. For example, the subset may include all members 105, participating members 105, or non-participating members 105. Other subsets may also be created, such as, for example, a preferred group as indicated by the initiating group member 105.
Conference messages may be created by the initiating group member 105. The conference messages may be in the form of, for example, a text message, an email message, and/or a voice message, depending upon the device 107 used by the initiating group member 105. For example, the initiating group member operating a computer may send an email, text, or instant message to the conference system 100.
The conference messages may typically be provided to the conference system 100 at the conclusion of the conference, but may be provided at other times as well where desired. The control software 115, upon receipt of the conference messages, may then provide the conference messages to the message center component 160. The message center component 160 operates to transmit messages between the control software 115 and a message storage component 170. The message storage component 170 may be a standard, relational database and may contain real-time information related to conference messages. The conference messages may be organized according to discussion group 103. Additionally, the conference messages may also be organized according to predefined parameters. The predefined parameters may be defined by the initiating group member 105 and may include a lifespan of the conference messages and/or an indication to automatically remove the conference messages if the discussion group 103 initiates a second conference and/or an automatic removal of the conference messages based upon a lifespan parameter and the length of the messages, as examples. Another parameter defined may include the topic of the message.
After the creation and storage of conference messages, the initiating member 105 may determine the subset of the discussion group who will receive the message. A message subset includes, but is not limited to, every member 105 of a discussion group 103, participating members 105 of a discussion group 103, non-participating members 105 of a discussion group 103, and/or members 105 who have specified interest in a specific topic. The subset may be dynamically determined for each discussion group 103. For example, one discussion group 103 may wish to provide conference messages to each member 105, while a second discussion group 103 provides a first conference message to non-participating members 105 and a second conference message to all members 105. The conference system 100 may operate to send an indication of a conference message to the members 105 included in the message subset. Alternatively, the members 105 may contact the conference system 100 to request any conference messages.
The conference system 100 may compute statistics related to the conference messages for use by the initiating group member 105. For example, the control software 115 may determine the non-participating members 105 that have accessed the conference messages. This information may be stored in the message storage component 170. The initiating group member 105 may communicate with the conference system 100 and may request the conference message statistics which include, but are not limited to, the members 105 that picked up their message, the time the message was picked up by member 105, and the members 105 that have not picked up their message. The message center component 160 may obtain the statistics from the storage component 170 and may provide the statistics to the initiating group member 105 via the gateway 180 and the network interface 190.
The conference system 100 may further include web servers 120. The web servers 120 may use standard web technology to render HTML pages and access the database 130 to provide a web user interface to members 105. The web servers 120 may communicate with the database 130 and the application controller 110. The web servers 120 update the database 130 with member information as well as discussion group 103 definitions. The web servers 120 also communicate with the database 130 to retrieve state information about current and past discussion groups 103. The web servers 120 may communicate indirectly with the application controller 110. Indirect communication is via the database 130 when the web server 120 places profile and/or state information into the database 130 that triggers a response from the application controller 110.
At 304, the registration information for the members 105 is stored by a unique member identifier. The control software 115, executing on the application controller 110, may provide the registration information to the database 130 for storage and organization of the member identifiers.
At 306, a discussion group 103 is created. The discussion group 103 includes a subset of the members 105a-105n and is identified by a group identifier. The creation of the discussion group 103 may include receiving a creation request to create the discussion group 103 from an initiating group member 105. The initiating group member 105 may access a communication device 107, create a request by, for example forming a telephone message or email message, and transmit the creation request to the conference system 100. The creation request may include the member identifiers corresponding to each member 105 that the initiating member 105 wishes to include in the group 103. The creation request may further include a group identifier, as designated by the initiating group member 105 or assigned by the conference system 100. For example, the database 130 may randomly assign a group identifier to a new discussion group 103.
At 308, group information related to the discussion group 103 is stored in and organized by the database 130. The group information includes the member identifiers of each member 105 in the discussion group 103, as well as the group identifier.
At 310, a conference with the discussion group 103 is initiated. The initiation of the conference may include receiving, at the conference system 100, a conference request as sent by the initiating group member 105. The initiating group member 105, when desiring a conference with the discussion group 103, may create the conference request using the communication device 107 and may transmit the conference request. The conference request may take one of many forms. For example, the conference request may be an interactive voice response script, an email, or a text message from a cellular device. The conference request may include the group identifier of the discussion group 103. The conference request is transmitted from the communication device 170 to the network interface 190, then to the gateway 180, and finally to the application controller 110, for analyzing the conference request and performing the requested function.
The initiation of the conference further includes transmitting, from the conference system 100, a message relaying the conference request to each member 105 of the discussion group 103. When the application controller 110 receives the conference request including the group identifier, the application controller 110 may access the database 130 and obtain the group information related to the group identifier. The group information contains the member identifiers of each member 105 of the discussion group 103. Stored with the member identifiers is the communication handle of each member 105 of the discussion group 103. Thus the application controller 110 is able to transmit the message relaying the conference request to each member by using the communication handles and by formatting the message to be compatible to each communication handle of the group members 105. For example, if member 105a is part of the discussion group 103, the application controller 110 is able to determine that member 105a employs a laptop computer as a communication device 107 to participate in conferences. This knowledge is gained by accessing the group information in the database 130. The application controller 110 may then operate to format the conference request message in an email message, which is a format compatible with the laptop computer of member 105a.
At 312, a member 105 of the discussion group 103 is joined to the conference by the conference system 100. To be joined to the conference, the member 105, upon receiving the conference request message, provides an acceptance stimuli to the conference system 100. The acceptance stimuli may be a telephone call or a text message and may simply indicate that the member 105 wishes to join a conference. The conference system 100, and in particular the application controller 110, determines, from the acceptance stimuli, the discussion group 103 to which the member 105 belongs and connects the member 105 to the conference of the discussion group 103.
To determine the discussion group 103 to which the member belongs, the application controller 110 obtains from the acceptance stimuli the communication handle of the member 105 attempting to join the conference. The communication handle is compared to the various handles stored in the database 130. If the attempting handle matches a stored handle, then the member identifier is obtained, and the database 130 is queried to provide the discussion groups 103 to which that member identifier is included.
At 314, a conference message is recorded. At 316, the conference message is provided to members 105 of a dynamically determined subset of the discussion group. The subset may include the members 105 of the discussion group 103 who did not participate in the conference, the members 105 who did participate in the conference, or all members 105 regardless of their participation in the conference. Other subsets are possible and may be dynamically defined on a discussion group basis. The conference message may be created by the initiating group member 105 and may include highlights or an outline of the conference or any information that the initiating group member 105 wishes to relay. The conference message is created on the communication device 107 of the initiating group member 105 and sent to the conference system 100. The conference system 100 may provide the conference message by transmitting it in a format compatible to the communication handle of each member 105 of the message subset. Alternately or additionally, the conference message may be provided to the members 105 by transmitting an indication of the conference message to each member 105 of the subset. The indication communicates to the members 105 that a conference message is available and provides instructions on how to access the conference message. For example, the indication may inform the members 105 to dial a particular telephone number or access a particular secure website. The conference message may be stored in the message storage component 170.
At 318, a conference report, including conference statistics, may be generated by the application controller 110. The conference statistics may include the length of the conference, the member identifiers of participating members 105, the member identifiers of non-participating members 105, and/or the status of any messages intended to be delivered to any of the members 105. At 320, the conference report is transmitted to a group coordinator, which may be the initiating group member 105 or another group member 105 of the discussion group 103. The conference report is sent in a format compatible to one or more of the known communication handles of the group coordinator, or made available for retrieval by means available to the group coordinator; for example, by voice interface, text message interface, instant message interface, online access through an internet browser connection.
At 404, the registration information for the members 150 is stored by a unique member identifier in the database 130. The control software 115, executing on the application controller 110, may receive the registration information from the communication device 107 of the member 105 and may transmit the registration information to the database 130 for storage and organization of the member identifiers.
At 406, members 105 are organized into multiple discussion groups 103. Each discussion group 103 includes at least one member 105, and each member 105 may belong to more than one discussion group 103. Each discussion group 103 is identified by a group identifier, which may be intentionally selected by an initiating group member 105 or randomly by the conference system 100. Each discussion group 103 is formed by a respective initiating group member 105, who provides a creation request to the conference system 100 via a communication device 107. The creation request may include the member identifiers corresponding to each member 105 that the initiating member 105 wishes to include in the group 103.
At 408, group information related to the discussion group 103 is stored in and organized by the database 130. The group information includes the member identifiers of each member 105 in the discussion group 103, as well as the group identifier.
At 410, a first conference with a first discussion group 103 is initiated. At 412, a second conference with a second discussion group 103 is initiated. The initiation of the first and second conference may occur at the same time. One of the two conferences may begin before the other conference, and one of the two conferences may end before the other conference, but the conferences overlap in time. The conference initiation may be performed as described above with relation to
At 414, a member 105 belonging to both the first discussion group 103 and the second discussion group 103 is joined to the first conference. At 416, the member 105 belonging to both the first discussion group 103 and the second discussion group 103 is joined to the second conference. The member 105 may be joined to the first conference and the second conference at the same time, or the member may be joined to one conference prior to the other conference.
At 418, other accepted and validated members 105 are joined to the first and/or second conferences depending upon the discussion group 103 memberships. Members may be joined at any time during the duration of the conferences. The conference joining process is described above with relation to
As is apparent from the above, all or portions of the various systems, methods, and aspects may be embodied in hardware, software, or a combination of both.
The foregoing examples are provided merely for the purpose of explanation and are in no way to be construed as limiting. While reference to various embodiments are shown, the words used herein are words of description and illustration, rather than words of limitation. Further, although reference to particular means, materials, and embodiments are shown, there is no limitation to the particulars disclosed herein. Rather, the embodiments extend to all functionally equivalent structures, methods, and sues, such as are within the scope of the appended claims.
This application claims priority to U.S. Provisional Patent Application No. 60/802,605, filed May 23, 2006 and entitled “System and Method for Group Voice Communication (aka, Foonz™)”.
| Number | Date | Country | |
|---|---|---|---|
| 60802605 | May 2006 | US |