Providing multiple virtual talk group communication sessions

Providing virtual talk groups to an endpoint includes managing the virtual talk groups, where a virtual talk group comprises one or more members operable to participate in the virtual talk group. One or more overlapping members are identified, where an overlapping member is a member of more than one virtual talk group. Internal virtual talk groups are generated from the original virtual talk groups, where the internal virtual talk groups comprise at least a reduced number of overlapping members. One or more original virtual talk groups are provided to the endpoint using the internal virtual talk groups.

TECHNICAL FIELD OF THE INVENTION

This invention relates in general to communication systems and, more particularly, to a method and system for providing multiple virtual talk group communication sessions.

BACKGROUND OF THE INVENTION

Public and private groups such as groups of security and safety personnel (for example, police officers, fire fighters, and emergency medical technicians) may need to communicate with each other. These groups, however, may utilize endpoints and communication networks that use different technologies. For example, safety personnel may utilize land mobile radios communicating using push-to-talk technologies, while police dispatchers may utilize personal computers communicating using wired network technologies.

Interoperability solutions attempt to provide communications among different endpoints and different networks. Organizations working towards interoperability solutions include JPS COMMUNICATIONS of RAYTHEON CORPORATION, IP BLUE SOFTWARE SOLUTIONS, TWISTED PAIR SOLUTIONS, INC., M/A-COM, INC., MOTOROLA, INC., and CISCO SYSTEMS, INC.

Communications among different endpoints and different networks, however, may be difficult. Collaboration between the different groups and networks tends to be ad hoc and inefficient, and often involves laborious manual intervention.

SUMMARY OF THE INVENTION

The present invention provides a method and system for providing virtual talk group communication sessions that substantially reduce or eliminate at least some of the disadvantages and problems associated with previous methods and systems.

In accordance with a particular embodiment, providing virtual talk groups to an endpoint includes managing the virtual talk groups, where a virtual talk group comprises one or more members operable to participate in the virtual talk group. One or more overlapping members are identified, where an overlapping member is a member of more than one virtual talk group. Internal virtual talk groups are generated from the original virtual talk groups, where the internal virtual talk groups comprise at least a reduced number of overlapping members. One or more original virtual talk groups are provided to the endpoint using the internal virtual talk groups.

In accordance with another embodiment, facilitating virtual talk groups includes receiving streams from sources of members of one or more virtual talk groups. Two or more streams received from a common source are identified. A subset of the identified streams is dropped. The remaining streams are mixed.

In accordance with another embodiment, managing virtual talk groups includes accessing information describing one or more links among virtual talk groups, where at least some of the virtual talk groups are linked by the one or more links. A link between a first virtual talk group and a second virtual talk group is considered. Whether the considered link would yield a loop among at least a subset of the virtual talk groups is determined. A response is performed if the considered link would yield the loop.

Certain embodiments of the invention may provide one or more technical advantages. A technical advantage of one embodiment may be that internal virtual talk groups that avoid overlapping members, that is, members of two or more virtual talk groups, may be created. An endpoint may use the internal virtual talk groups to avoid receiving streams from a common source, which may in turn avoid undesired echo resulting from mixing streams from a common source.

Another technical advantage of one embodiment may be that an endpoint may identify streams arriving from a common source, and may drop all but one of the streams. The endpoint may identify the streams according to a cross-correlation matrix, a speech recognition operation, or the headers of packets carrying the streams.

Another technical advantage of one embodiment may be that a user interface for creating and managing virtual talk groups may be used to reduce or eliminate the possibility of creating loops through which a stream originating from an endpoint travels back to the endpoint. A stream traveling through the loop may create undesired feedback noise.

DETAILED DESCRIPTION

FIG. 1illustrates a communication system10, in accordance with a particular embodiment. Communication system10includes communication networks24a-24e, an interoperability system (IS)20, and endpoints22a-22d. IS20is able to facilitate interoperable communication sessions between and among various communication devices, such as endpoints22. IS20may use a systems approach to offer a framework based on Internet Protocol (IP) protocols and services in order to provide secure voice, video, and other data interoperability among endpoints22and networks24utilizing different technologies.

According to one embodiment, communication system10may allow an endpoint22to participate in one or more virtual talk groups. A virtual talk group may allow member endpoints22to interoperably communicate over a virtual channel. In certain situations, participation in two or more virtual talk groups may result in an endpoint22sending another endpoint22two or more streams that are out of phase. If out of phase streams from the same endpoint22are mixed, the resulting mixed stream may yield an undesired echo.

System10may have features that may be used to address this situation. In a first example, IS20may detect whether an endpoint22is an overlapping member, that is, a member of two or more virtual talk groups. IS20may create internal virtual talk groups that avoid overlapping members. Endpoints22may listen to the internal talk groups to avoid mixing streams from a common source. In a second example, an endpoint22may identify streams received from a common source, and may drop all but one of the streams.

According to one embodiment, a user interface for creating and managing virtual talk groups may be used to reduce or eliminate the possibility of creating loops through which a stream originating from an endpoint22travels back to the endpoint22. A stream traveling through the loop may create undesired feedback noise.

According to the illustrated embodiment, communication system10operates to allow endpoints22to participate in one or more communication sessions. A communication session may refer to an active communication among two or more endpoints22. As an example, a communication session may occur between an endpoint22and another endpoint22, or between an endpoint22and a defined set of other endpoints22. Information is communicated during a communication session. Information may refer to voice, data, text, audio, video, multimedia, control, signaling, IM, other information, or any combination of the preceding.

Communication system10includes communication networks24a-24e. Communication networks24may be distributed locally or across multiple cities or other geographic regions. A communication network24may comprise any suitable IP or non-IP communication network of any wireless or wireline form.

A communication network24may comprise at least a portion of one or more of the following: a public switched telephone network (PSTN), a public or private data network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a local, a cellular network, regional, or global communication or computer network such as the Internet, a wireline or wireless network, an enterprise intranet, a land mobile radios (LMR) network, a Code Division Multiple Access (CDMA) network, a Time Division Multiple Access (TDMA) network, a Global System for Mobile Communications (GSM) network, a satellite network, other suitable network, or any combination of the preceding.

A communication network24may utilize communication protocols and technologies to provide the communication sessions. Example communication protocols and technologies include those set by the Institute of Electrical and Electronics Engineers, Inc. (IEEE) 802.xx, the International Telecommunications Union (ITU-T) standards, the European Telecommunications Standards Institute (ETSI) standards, the Internet Engineering Task Force (IETF) standards, or other standards.

As an example, a communication network24may communicate data in streams of packets according to a packet technology for example, Internet Protocol (IP) technology. A packet technology may allow for the addressing or identification of endpoints, nodes, and/or other devices of or coupled to the communication network24. For example, each device coupled to an IP network may be identified using IP addresses. In this manner, the communication network24may support any form and/or combination of point-to-point, multicast, unicast, or other techniques for exchanging media packets among components of communication system10.

As another example, a communication network24may receive and transmit data in a Session Initiation Protocol (SIP) environment. SIP is an application-layer control protocol that includes primitives for establishing, modifying, and terminating communication sessions. SIP works independently of underlying transport protocols and of the type of session that is being established. SIP also transparently supports name mapping and redirection services, which support personal mobility.

Communication system10may comprise any suitable number of any suitable communication networks24. In the illustrated embodiment, communication networks24aand24dcomprise radio networks (RNs), communication network24bcomprises a LAN, communication network24ccomprises a PSTN, and communication network24ecomprises an IP network.

Radio networks24aand24dmay support communication among mobile endpoints, such as land mobile radios (LMRs), using any suitable communication methods or features, such as cellular or push-to-talk (PTT). PSTN24cmay include switching stations, central offices, mobile telephone switching offices, pager switching offices, remote terminals, other related telecommunications equipment, or any combination of any of the preceding.

Communication network24bmay communicate signals transmitted to telephony devices located on different, but interconnected, IP networks. Communication network24bmay also be coupled to non-IP telecommunication networks through, for example, the use of interfaces or components, including gateways. In one embodiment, communication network24bmay be coupled with PSTN24cthrough a gateway, which may be a part of IS20or network24e.

Communication networks24may comprise networks of particular public and private groups such as agencies or companies. For example, communication networks24may comprise networks for security and safety personnel (for example, police officers, fire fighters, or emergency medical technicians) or for a particular company. Communication networks24may be operational with respect to a particular area or otherwise.

Communication networks24may include any number and combination of devices. In general, a device may include any suitable arrangement of components operable to perform the operations of the device, and may comprise logic, an interface, memory, other component, or any suitable combination of the preceding.

“Logic” may refer to hardware, software, other logic, or any suitable combination of the preceding that may be used to provide information or instructions. Certain logic may manage the operation of a device, and may comprise, for example, a processor. “Processor” may refer to any suitable device operable to execute instructions and manipulate data to perform operations. For example, a processor may comprise a microprocessor, controller, or any other suitable computing device.

“Interface” may refer to logic of a device operable to receive input for the device, send output from the device, perform suitable processing of the input or output or both, or any combination of the preceding, and may comprise one or more ports, conversion software, or both. “Memory” may refer to volatile or non-volatile logic operable to store and facilitate retrieval of information, and may comprise Random Access Memory (RAM), Read Only Memory (ROM), optical media, magnetic media, a disk drive, a Compact Disk (CD) drive, a Digital Video Disk (DVD) drive, removable media, any other suitable local or remote data storage medium, or a combination of any of the preceding.

Communication networks24may include any suitable number of combinations of segments, nodes, and endpoints to enable communication. A node may comprise any suitable number of any suitable communication devices. One or more nodes of a communication network24may include network components, gatekeepers, call managers, conference bridges, routers, hubs, switches, gateways, base stations, endpoints, other devices that allow for the exchange of data in communication system10, or any combination of any of the preceding.

Segments30couple networks24, endpoints22, and IS20. Segments30may comprise any suitable wireless or wireline communication links, including one or more communication networks. In particular embodiments, segments30may include gateways for facilitating communication between various networks, such as an LMR gateway between radio network24aand IP network24e.

Endpoints22may represent any suitable device or system of devices operable to provide communication services to a user. Endpoints22may provide communication services by sending and receiving streams of packets.

An example endpoint22may comprise a telephone, a cellular phone, an IP phone, a personal digital assistant (PDA), a fax machine, a personal computer (PC), a sensor such as a camera or a video monitor, a land mobile radio (LMR), a command center, a gateway, any other communication device or system of devices, or any suitable combination of any of the preceding. In the illustrated embodiment, endpoints22comprise a PC (endpoint22a), a PDA (endpoint22b), an IP phone (endpoint22c), and LMRs (endpoints22d). Endpoints22and IS20may also include unattended or automated systems, gateways, or other devices that can establish media sessions.

Endpoints22may be IP or non-IP enabled. IP enabled endpoints22may comprise IP telephony devices capable of participating in IM, video, and other multimedia communication sessions. IP telephony devices have the ability to encapsulate user input (such as voice) into IP packets so that the input can be transmitted over a communication network. IP telephony devices may use Voice over IP (VoIP), or Voice over Packet (VoP), technology. Endpoints22may include endpoint devices running telephony software, other device capable of performing telephony functions, or any suitable combination of any of the preceding.

IS20enables, facilitates, and/or provides for interoperable communication among communication devices, such as endpoints22, using IP. As indicated above, such network interoperability includes the interoperability of push-to-talk voice technology within various networks and the interoperability between push-to-talk and full duplex dialed connections.

IS20may map devices to IP addresses to allow the devices to communicate with other devices. As an example, IS20may control gateways of segments30to map radio frequencies of particular radio endpoints to IP addresses to allow the radio endpoints to communicate with each other. In some embodiments, IS20may host conferences that bridge communications received from endpoints.

Addresses may be assigned in any suitable manner. Multicast IP addresses may be assigned one or more endpoints of one or more communication networks. As an example, a group of endpoints may be combined into a virtual talk group (VTG) for communication using a particular IP address. The virtual talk group may be assigned a multicast IP address through which endpoints of the talk group may communicate.

IS20may communicate in other manners. As an example, IS20may communicate using a peer-to-peer dialed connection or a nailed dialed connection. Communication methods may be combined to facilitate communication among endpoints. For example, in some cases certain endpoints of a virtual talk group may participate in the talk group through a multicast IP address, while other endpoints may utilize a nailed SIP connection.

IS20may be utilized and implemented in any number of market segments, such as enterprise safety and security (for example, loss prevention), transportation, retail, public safety, and federal agencies in order to provide radio and non-radio network interoperability within and between such market segments.

Modifications, additions, or omissions may be made to communication system10without departing from the scope of the invention. The components of communication system10may be integrated or separated according to particular needs. Moreover, the operations of system10may be performed by more, fewer, or other modules. Additionally, operations of system10may be performed using any suitable logic.

FIG. 2illustrates a communication system50for providing a push-to-talk communication session, in accordance with a particular embodiment. Communication system50includes a full duplex endpoint80, one or more half-duplex endpoints90a-c, one or more communication networks95a-b, and an IS20coupled as shown.

Communication networks95allow for communication among endpoints90, and may comprise, for example, land mobile radio networks of different public or private groups. Endpoints80and90, however, may communicate with IS20through any of a variety of communication networks. In some cases, communications between endpoints80and90may not travel through IS20, but may travel through gateways and other network components controlled by IS20.

IS20may be substantially similar to the IS generally described with reference toFIG. 1. IS20may facilitate interoperable communication among endpoints80and90, and is described in more detail with reference toFIG. 3. Endpoints80and90may be substantially similar to endpoints generally described with reference toFIG. 1. An example endpoint is described in more detail with reference toFIG. 4.

Endpoint80represents any suitable full duplex endpoint capable of communicating in a full duplex manner. A full duplex endpoint may receive and transmit communications at the same time using, for example, separate communication channels for incoming and outgoing communications. A channel may refer to a unidirectional or bidirectional path for transmitting and/or receiving electrical or electromagnetic signals and media streams. For example, a channel may comprise a conventional radio physical radio frequency (RF) channel. Example full duplex endpoints include a PSTN phone and a cellular phone. The communication may comprise any suitable media modality, for example, voice, data, text, video, IM, other media modality, or any suitable combination of the preceding.

Endpoints90represent any suitable half-duplex endpoint capable of communicating in a half-duplex manner. A half-duplex endpoint may only either transmit or receive communications at one time, as one communication channel is used for incoming and outgoing communications. An example half-duplex endpoint comprises a push-to-talk endpoint such as a push-to-talk land mobile radio. To communicate over the channel, a user may select a push-to-talk button by, for example, pushing the button. To end communication over the channel, the user may deselect the push-to-talk button by, for example, releasing the button.

According to one embodiment of operation, full duplex endpoint80calls into IS20in order to participate in a virtual talk group, which may include other full duplex endpoint80and half-duplex endpoints90. IS20facilitates communication among the endpoints80and90. For example, a multipoint conference system of IS20may bridge together transmissions from an endpoint80or90for communication to the other endpoints80or90.

An endpoint80or90may “control the floor” in order to become an active endpoint and have its communications transmitted to and received by other endpoints80or90. Otherwise, communication from endpoint80may not reach a half-duplex endpoint90that is currently sending a communication, and vice versa.

IS20may provide floor control through a mute function. An endpoint80or90that has floor control is allowed to communicate, and the other endpoints80or90are muted. As an example, when the endpoint80or90has floor control, communications from the endpoint80or90are transmitted to the other endpoints80or90, which are muted. IS20prevents the other endpoints80or90from gaining floor control when the endpoint80or90has floor control. When the endpoint80or90does not have floor control, another endpoint80or90may gain floor control to send communications.

According to one embodiment, IS20may facilitate communication among endpoints of various networks through virtual talk groups. A talk group may comprise a defined set of users (for example, radio users) who share a common functional responsibility and typically coordinate actions amongst themselves without radio interface with other talk groups. For example, a municipality's police department network may include various talk groups of different users.

A virtual talk group may allow member endpoints of a talk group to interoperably communicate over a virtual channel. A virtual channel may comprise a virtual channel address through which member endpoints may access the virtual talk group and/or through which communications from member endpoints are bridged. As an example, a virtual channel address may comprise an IP address. A virtual talk group may have a virtual talk group identifier that uniquely identifies the virtual talk group.

A virtual talk group may have any suitable communications format. As a first example, endpoints of a virtual talk group may use a multicast address for access. As a second example, a virtual talk group may comprise multiple talk groups, such as multiple radio sources from different frequencies with mixed communications. As a third example, a virtual talk group may comprise a unicast group or a combination unicast and multicast group.

Virtual talk groups may be created using any suitable user/endpoint groups or channels based on location, organizational requirements, event requirements, or any other suitable characteristic. An example virtual talk group may comprise channels or other multicast paths used by endpoints of a police department's radio network, a fire department's radio network, a corporation's security radio network, and IP-enabled endpoints such as IP phones, IP-enabled PDAs, or PCs.

A virtual talk group may have any suitable members. Example members include users, endpoints, push-to-talk management clients, other virtual talk groups, or any combination of the preceding. As an example, a child virtual talk group may be linked to a parent virtual talk group to become a sub-group of the parent virtual talk group. The members of the linked virtual talk groups receive streams from both virtual talk groups. Virtual talk groups may be linked by patching the addresses of the virtual talk groups. For example, the addresses may be patched through voice port pair resources on a Cisco T1 interface card.

A problem may arise if linked virtual talk groups yield a loop through which a stream originating from an endpoint80or90enters into an infinite loop. A stream traveling through the loop may create undesired feedback noise. A loop may be created if a virtual talk group is both a child and a parent of itself. For example, a first virtual talk group may be linked to a second virtual talk group, the second virtual talk group may be linked to a third virtual talk group, and the third virtual talk group may be linked to the first virtual talk group, creating a loop where the first virtual talk group is both a child and a parent of itself.

According to one embodiment, a user interface for creating and managing virtual talk groups may be used to reduce or eliminate the possibility of creating loops. An example user interface is described in more detail with reference toFIGS. 5A and 5B.

A virtual talk group may be associated with one or more features. A feature may refer to a particular capability of the virtual talk group. Example features include, for example, recording information, playing information, other capability, or any combination of the preceding. Information may include, for example, voice, data, text, audio, video, multimedia, control, signaling, IM, other information, or any combination of the preceding, about a communication or a scene associated with an endpoint80or90. The information may be presented in any of a variety of encoding formats, which may utilize different resources from the endpoint in order to receive information from and/or send information to other endpoints.

According to one embodiment, an endpoint80or90may participate in one or more virtual talk groups, such as two or more virtual talk groups. As an example, endpoint90amay participate in a first, a second, and a third virtual talk group. When the first and second virtual talk groups are mixed into the third virtual talk group, the media stream from endpoint90ais mixed twice into the third virtual talk group, once from the first virtual talk group and again from the second virtual talk group. The third virtual talk group receives media streams from endpoint90atwice via two media streams, which may be out of phase with each other. For example, system delay variation, jitter buffer variation, or other variation may cause the streams to be received out of phase. If the out of phase streams from endpoint90aare mixed, the resulting mixed stream may yield an undesired echo.

According to one embodiment, system50may have features that can be used to address this situation. According to one embodiment, IS20may detect whether an endpoint80or90is an overlapping member, that is, a member of two or more virtual talk groups that are combined into a larger third virtual talk group. IS20may then create internal virtual talk groups from the two or more virtual talk groups, where the endpoint80or90is not an overlapping member. IS20then instructs endpoints80or90to listen to the internal talk groups to avoid mixing multiple streams from the same endpoint80or90into a single virtual talk group.

According to another embodiment, endpoint80or90may detect whether input streams are arriving from the same source, and drop all but one of the streams. As an example, endpoint80or90may calculate a cross-correlation matrix that may be used to identify streams from the same endpoint80or90. As another example, endpoint80or90may use a speech recognition operation, such as a speech envelope detection operation, to identify streams from the same endpoint80or90. As yet another example, the system may examine the source address of the headers of the media stream IP packets to identify streams from the same source.

Modifications, additions, or omissions may be made to system50without departing from the scope of the invention. The components of system50may be integrated or separated according to particular needs. Moreover, the operations of system50may be performed by more, fewer, or other modules. Additionally, operations of system50may be performed using any suitable logic.

FIG. 3illustrates an IS20, in accordance with a particular embodiment. IS20may be substantially similar to the IS ofFIG. 1or ofFIG. 2. IS20may be used by any suitable person, such as a dispatcher, an administrator, or a first responder mobile user.

A control endpoint may refer to an endpoint utilized to access, configure, and control the functionality of IS20. In one embodiment, a PC endpoint70may be used to access, configure, and control IS20. PC endpoint70may run a client application for such access, configuration, and control. The client application may enable a user of endpoint70to receive and monitor communications from endpoints and virtual talk groups. Other suitable control endpoints, such as an IP phone, a PDA, or a mobile device, may be utilized to access, configure, and control IS20.

In the illustrated embodiment, IS20includes an interface (I/F)51, gateways52, an operations management application (OMA)54, a multipoint conference system (MCS)56, a policy engine58, an authentication and security system60, a call manager62, a processor64, and a memory module66.

Interface51facilitates the communication of information between IS20and other network components. For example, interface51may receive communications from endpoints. The communication may take place over IP networks, which may reduce the need for dedicated wiring between the endpoints and IS20.

Gateways52may represent one or more gateways that provide network interoperability. Example gateways52include LMR gateways, PSTN gateways, or application gateways. Gateways52may provide mappings between IP services and interoperable networks, such as an LMR network. In some cases, gateways52may not be located within IS20, but may be distributed throughout a communication system for enabling communications among communication networks.

Operations management application (OMA)54includes functionality for configuration, management, and control of IS20. OMA54may provide conference and collaboration management. OMA54may simultaneously monitor and provide communication ability for any number of channels to allow a user to simultaneously communicate with and control multiple virtual talk groups. OMA54may also use authentication and security system60to authenticate a user and obtain user configuration information.

OMA54may be accessed by a user via a control endpoint, for example, PC endpoint70or a mobile endpoint. OMA54may allow a control endpoint to configure, manage, and simultaneously participate in one or more virtual talk groups and ad hoc conferences. In particular embodiments, OMA54may be accessed through a web interface functioning, for example, as a soft phone for a radio.

Multipoint conference system (MCS)56provides collaboration and conference services for multiple endpoints of one or more networks. For example, different types of endpoints of different networks may be bridged together through MCS56to provide virtual talk group communications. MCS56may include any suitable number or type of conference bridges, ports, digital signal processors, or other components to facilitate communications.

Policy engine58includes policies, such as pre-determined and ad hoc policies, specifying actions to take in response to events in order to provide dynamic incident management. In one embodiment, policy engine58may receive input from detectors such as alarms and sensors. Policy engine58may then set up communication interoperability and one-way information collaboration, and may trigger additional actions such as pager, e-mail, or other notifications, dial-outs, data recording, or information escalation.

Authentication and security system60manages access, configuration, and control privileges for users of IS20and endpoints22. Different users may have different privileges. Some users may have only transmit or listen privileges with respect to one or more particular talk groups, while other users may have the ability to communicate with all talk groups or to setup and configure talk groups. User privileges may dynamically change in response to the occurrence of particular events.

Call manager62maintains information regarding users, such as the users of IP networks for which interoperable communications are provided by IS20. The information may include a name or other identifier and contact information such as phone numbers and email addresses.

Processor64may comprise a processor operable to provide IS20functionality, either alone or in conjunction with other IS components such as OMA54. Such functionality may include providing features discussed herein. Other features may include: providing location information of endpoints; enabling an endpoint to listen to and/or participate in communications involving endpoints of a particular geographic area; presenting communication of endpoints of scene-related virtual talk groups; and controlling gateways and other network components to facilitate interoperable communications among endpoints.

Memory module66may comprise memory operable to store any suitable information utilized by IS20. In particular embodiments, information may include information for user management, virtual talk group management, resource pool management, privileges, backup configuration, and/or timestamp and activity tracking.

IS20may be used to facilitate communication among endpoints of a virtual talk group. MCS56may provide conferencing functionality for the endpoints. In particular embodiments, multiple talk groups may be patched together on a dynamic basis. In some cases, a virtual talk group may not necessarily include communications through IS20, but may instead include member endpoints whose communications are mapped to IP addresses at gateways controlled by IS20.

Modifications, additions, or omissions may be made to IS20without departing from the scope of the invention. For example, IS20may also include any number of switches, routers, firewalls, mobile access routers, access points, wireless bridges, or other components. The components of system IS20may be integrated or separated according to particular needs. Moreover, the operations of system IS20may be performed by more, fewer, or other modules. Additionally, operations of IS20may be performed using any suitable logic.

FIG. 4illustrates an example virtual talk group manager400, in accordance with a particular embodiment. Virtual talk group manager400may cooperate with or may be included in any suitable device, for example, IS20or endpoint22,80, or90. Virtual talk group manager400may manage virtual talk groups VTGi, where a virtual talk group VTGihas n members given by m(VTGi)={mil, . . . mij, . . . , min}.

According to the illustrated embodiment, virtual talk group manager400includes an internal virtual talk group generator410. Internal virtual talk group generator410creates corresponding internal virtual talk groups VTGi* from virtual talk groups VTGi. A set of internal virtual talk groups VTGi* that correspond to a set of virtual talk groups VTGitypically includes the same members. The members of the internal virtual talk groups VTGi*, however, are distributed among the groups VTGi* such that the groups VTGi* have no overlapping members. Moreover, the members are distributed such that each virtual talk group VTGihas one or more corresponding internal virtual talk groups VTGi* that have the same members as the virtual talk group VTGi.

The internal virtual talk groups may be created in any suitable manner. According to one embodiment, internal virtual talk groups may be created from first and second virtual talk groups that have an overlapping member. A first internal virtual talk group may be created by removing the overlapping member from the first virtual talk group. A second internal virtual talk group may be created by removing the overlapping member from the second virtual talk group. A third internal virtual talk group may be created from the overlapping member.

As an example, internal virtual talk groups VTGi* may be created from virtual talk groups VTG1and VTG2that have an overlapping member m1j=m2j′. Internal virtual talk group VTG*1may be created by removing overlapping member m1jfrom the first virtual talk group VTG1:
m(VTG*1)={m11, . . . , m1p}−{m1j}
Second internal virtual talk group VTG*2may be created by removing overlapping member m2j′from second virtual talk group VTG2:
m(VTG*2)={m21, . . . , m2q}−{m2j′}
Third internal virtual talk VTG*1,2group may be created from overlapping member m1j:
m(VTG*1,2)={m1j}={m2j}

An endpoint subscribing to a virtual talk group is instructed to listen to the internal virtual talk groups corresponding to the virtual talk group. In the example, virtual talk group VTG1has corresponding internal virtual talk groups VTG1* and VTG1,2*, and virtual talk group VTG2has corresponding internal virtual talk groups VTG2* and VTG1,2*. Since the internal virtual talk groups do not have any overlapping members, the endpoint receives only one stream from each source.

In accordance with one embodiment, when a dispatcher creates VTG3by combining VTG1and VTG2, members of VTG3receive the combined media streams from VTG*1, VTG*2, and VTG*1,2, thus avoiding hearing multiple media streams from the overlapping member m1j.

Modifications, additions, or omissions may be made to virtual talk group manager400without departing from the scope of the invention. The components of virtual talk group manager400may be integrated or separated according to particular needs. Moreover, the operations of virtual talk group manager400may be performed by more, fewer, or other modules. Additionally, operations of virtual talk group manager400may be performed using any suitable logic.

FIGS. 5A and 5Billustrate an example user interface250for creating virtual talk groups, in accordance with a particular embodiment. User interface250may be used with any suitable device, for example, IS20or endpoints22,80, or90, to facilitate creation and management of virtual talk groups. The graphs of the virtual talk groups may be maintained as a live in-memory synchronized data structure for the device.

User interface250includes a window254. A user may configure a virtual talk group by dragging and dropping graphical elements representing channels and members into an area representing the virtual talk group. Moreover, a user may link virtual talk groups by coupling graphical elements representing the virtual talk groups with a graphical link. User interface250may allow a user to perform other suitable operations, for example, to configure group details such as name, description, participants, multicast IP addresses, codec, and latch options.

A link266represents a relationship between virtual talk groups. In the illustrated embodiment, link266comprises an arrow from a child virtual talk group, or sub-group, to a parent virtual talk group. In the illustrated embodiment, virtual talk group B is a sub-group of virtual talk group C, and virtual talk group C is a sub-group of virtual talk group A.

Links266form paths between virtual talk groups. A path between virtual talk groups may be direct or indirect. A direct path between two virtual talk groups has no intervening virtual talk groups. As an example, the path between virtual talk groups B and C is direct, and the path between virtual talk groups C and A is direct. An indirect path between two virtual talk groups has one or more intervening virtual talk groups. In the illustrated example, the path between virtual talk groups B and A is indirect because there is an intervening virtual talk group C.

Referring toFIG. 5B, graph270illustrates another relationship between virtual talk groups D, E, and F. Virtual talk group E is a sub-group of virtual talk group D, and virtual talk group F is a sub-group of virtual talk group D.

According to one embodiment, IS20may detect whether a link to be formed between virtual talk groups would result in a loop. A loop may be detected in any suitable manner. In one example, IS20may determine whether a link to be formed between virtual talk groups A and B of a set of virtual talk groups would yield a loop by establishing if either of the following criteria is satisfied:

(1) whether another path (either direct or indirect) between virtual talk groups A and B already exists; and

(2) whether linking virtual talk groups A and B would create multiple paths between any two or more virtual talk groups of the set of virtual talk groups. If either or both of these conditions are satisfied, adding the link between virtual talk groups A and B would yield a loop.

As an example, in graph258, there is a path between virtual talk groups A and B, so adding a link between virtual talk groups A and B would violate the first condition, and thus yield a loop. As another example, in graph270, adding a link between virtual talk groups E and F would create multiple paths between virtual talk groups F and D, violating the second condition, and thus yield a loop.

IS20may respond to the detection of a loop in any suitable manner. According to one embodiment, IS20may prevent the addition of a link that would result in a loop, for example, prevent the addition if either of the conditions is satisfied. As an example, the user may be prevented from placing the link between the virtual talk groups.

According to another embodiment, IS20may provide a notification if a loop is detected, for example, if either of the conditions is satisfied. The notification may be presented in any suitable manner. As an example, an alert window may notify the user of the loop. As another example, the link that results in the loop may be highlighted, for example, displayed in a different color such as red.

Modifications, additions, or omissions may be made to user interface250without departing from the scope of the invention. User interface250may include more, fewer, or other graphical elements. Additionally, graphical elements may be configured in any suitable arrangement without departing from the scope of the invention.

FIG. 6illustrates an endpoint100, in accordance with a particular embodiment. Endpoint100may represent any suitable device or system of devices operable to provide communication services to a user, and may be substantially similar to endpoints22ofFIG. 1or endpoints80and90ofFIG. 2.

Endpoint100includes a transmitter/receiver82, a user interface84, a processor86, and a memory module88. Transmitter/receiver82transmits and receives signals that communicate information to and from other network components.

User interface84provides a mechanism through which a user of endpoint100may operate endpoint100and communicate with other network devices. User interface84may comprise, for example, a microphone, a speaker, a keypad, a display, or any other suitable interface. Instructions may be submitted through speech, keystrokes, soft keystrokes, or other mechanism. According to one embodiment, user interface84includes a microphone operable to record an announcement for a user, and a speaker operable to play an announcement for a user. An example user interface84is described with reference toFIG. 5.

Processor86may comprise a processor operable to facilitate operation of endpoint100. Memory module88may comprise memory operable to store information for endpoint80. An example user interface is described in more detail with reference toFIG. 8.

Modifications, additions, or omissions may be made to endpoint100without departing from the scope of the invention. The components of endpoint100may be integrated or separated according to particular needs. Moreover, the operations of endpoint100may be performed by more, fewer, or other modules. Additionally, operations of endpoint100may be performed using any suitable logic.

FIG. 7illustrates an example virtual talk group manager450, in accordance with a particular embodiment. Virtual talk group manager450may cooperate with or may be included in any suitable device endpoint22,80, or90or IS20.

According to the illustrated embodiment, virtual talk group manager450includes a common source identifier454that identifies streams arriving from a common source, such as the same endpoint. If streams have a common source, virtual talk group manager450may drop a subset of the streams, for example, all but one stream arriving from the same source. The remaining streams may then be mixed.

Common source identifier454may identify streams from a common source in any suitable manner. According to the illustrated embodiment, common source identifier454may include a cross-correlation matrix generator458, a speech recognition module462, a generic identifier466, or any suitable combination of the preceding to identify streams from a common source. Cross-correlation matrix generator458may calculate a cross-correlation matrix for the streams. Streams that have a high correlation may indicate streams from a common source, and streams with low correlation may indicate streams from different sources. Accordingly, virtual talk group manager450may drop all but one of a group of highly correlated streams, and may mix the resulting low correlated streams.

The cross-correlation matrix may be calculated at any suitable time. According to one embodiment, the matrix may be calculated in response to a push-to-talk event. Example push-to-talk events that may trigger computation may include when the user pushes a talk button in order to request floor control.

Speech recognition module462may identify streams from a common source using a speech recognition operation. Streams from a common source typically have similar speech characteristics, such as similar speech envelopes. As an example, a speech envelope detection operation may be used to detect the envelopes of the streams, and correlation techniques may be used to determine if the envelopes match.

Generic identifier466may identify streams from a common source using the headers of packets carrying the media streams. As an example, the headers include source addresses identifying the sources of the streams. Headers with common source addresses indicate streams from a common source.

Modifications, additions, or omissions may be made to virtual talk group manager450without departing from the scope of the invention. The components of virtual talk group manager450may be integrated or separated according to particular needs. Moreover, the operations of virtual talk group manager450may be performed by more, fewer, or other modules. Additionally, operations of virtual talk group manager450may be performed using any suitable logic.

FIG. 8illustrates an example endpoint user interface150, in accordance with a particular embodiment. User interface150may be used with endpoint100ofFIG. 6to select and manage participation in virtual talk groups.

User interface150includes one or more group sections160. A group section160may correspond to a virtual talk group, and may be used to manage participation in the virtual talk group. A group section160for a virtual talk group includes an activation/deactivation selector164, a push-to-talk button168, volume controls172, transmit and receive indicators176, and feature controls180.

Activation/deactivation selector164may be used to activate or deactivate a channel to, for example, join or leave the virtual talk group. Push-to-talk button168may be used to request floor control from IS20in order to be able to send streams to other members of the virtual talk group. Push-to-talk button168may be selected to request floor control by, for example, pushing the button, and may be deselected to relinquish floor control by, for example, releasing the button. According to the illustrated embodiment, push-to-talk button168displays the name of the virtual talk group.

Volume controls172may be used to increase or decrease the volume from the virtual talk group. A volume control172may include an indicator that indicates the volume level of the channel. Transmit and receive indicators176may indicate whether traffic is being transmitted and/or received. According to one embodiment, indicators176for the virtual talk groups to which an endpoint is a member may be simultaneously activated when receiving the stream from the endpoint.

Feature controls180may be used to activate or deactivate features of a virtual talk group. For example, a feature button may add video communication among members of a virtual talk group, while another feature button may invoke recording of audio communication among the members of the virtual talk group.

Modifications, additions, or omissions may be made to user interface150without departing from the scope of the invention. User interface150may include more, fewer, or other graphical elements. Additionally, graphical elements may be configured in any suitable arrangement without departing from the scope of the invention.

Certain embodiments of the invention may provide one or more technical advantages. A technical advantage of one embodiment may be that internal virtual talk groups that avoid overlapping members, that is, members of two or more virtual talk groups, may be created. An endpoint may use the internal virtual talk groups to avoid receiving streams from a common source, which may in turn avoid undesired echo resulting from mixing streams from a common source.

Another technical advantage of one embodiment may be that an endpoint may identify streams arriving from a common source, and may drop all but one of the streams. The endpoint may identify the streams according to a cross-correlation matrix, a speech recognition operation, or the headers of packets carrying the media streams.

Another technical advantage of one embodiment may be that a user interface for creating and managing virtual talk groups may be used to reduce or eliminate the possibility of creating loops through which a stream originating from an endpoint travels back to the endpoint. A stream traveling through the loop may create undesired feedback noise.

Technical advantages of particular embodiments include managing the capabilities of an endpoint by determining whether an endpoint has sufficient resources to participate in virtual talk groups that may be accessed by the endpoint, and establishing at least a subset of the virtual talk groups that may be presented to the endpoint if it does not have sufficient resources.

In addition, in particular embodiments, the subset of virtual talk groups may be established by presenting options that may be selected to either increase the resources or reduce the demand. The virtual talk groups may be selected in accordance with the selections.

While various implementations and features are discussed with respect to multiple embodiments, it should be understood that such implementations and features may be combined in various embodiments. For example, features and functionality discussed with respect to a particular figure may be used in connection with features and functionality discussed with respect to another figure according to operational needs or desires.

Although the present invention has been described in detail with reference to particular embodiments, it should be understood that various other changes, substitutions, and alterations may be made hereto without departing from the spirit and scope of the present invention. For example, although the present invention has been described with reference to a number of elements included within communication system10and illustrated endpoints and interoperability systems, these elements may be combined, rearranged, or positioned in order to accommodate particular routing architectures or needs. In addition, any of these elements may be provided as separate external components to communication system10and illustrated endpoints and interoperability systems, or each other where appropriate. The present invention contemplates great flexibility in the arrangement of these elements as well as their internal components.

Numerous other changes, substitutions, variations, alterations, and modifications may be ascertained by those skilled in the art. The present invention encompasses all such changes, substitutions, variations, alterations, and modifications as falling within the spirit and scope of the appended claims.