Abstract:
A method and apparatus for implicit floor control in push-to-talk over cellular system. A message is generated by a client in a communication system and is then streamed to a push-to-talk server. The server checks to see if the floor is idle, and if so, distributes the message to at least one other participant in the communication session. If the floor is not idle, the new message is stored and queued for distribution after all other messages ahead of the last received message have been distributed.

Description:
CLAIM OF PRIORITY UNDER 35 U.S.C. §119 
     The present Application for Patent claims priority to Provisional Application No. 60/648,341, entitled “Method and Apparatus for Implicit Floor Control in Push-to-Talk Over Cellular Systems” filed Jan. 28, 2005, and assigned to the assignee hereof and hereby expressly incorporated by reference herein. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates generally to communication systems, and more specifically, to a method and apparatus for implicit floor control in push-to-talk over cellular systems. 
     BACKGROUND 
     Wireless communication technologies have seen tremendous growth in the last few years. This growth has been fueled in part by the freedom of movement offered by wireless technologies and the greatly improved quality of voice and data communications over the wireless medium. Improved quality of voice services along with the addition of data services have had and will continue to have a significant effect on the communicating public. 
       FIG. 1  is a block diagram that shows a Push-to-Talk over Cellular (PoC) service and an Instant Messaging (IM) service, both operating in a wireless communication system  100 . 
     An Instant Messaging (IM) service uses an IM service to exchange messages with other IM clients  108 . Even though IM service was developed to exchange text based information, there is no restriction to carrying other types of information such as audio clips, images, etc. Also, there is no restriction on a user regarding what to transmit and when to transmit. Typically, the information is not streamed from the sender to receiver. Users may transmit at any time, as there is no concept of floor control. 
     A Push-to-Talk over Cellular (PoC) service establishes a half-duplex audio communication channel between a group of PoC users or clients,  104 , as shown in  FIG. 1 . At most, one member of a PoC group has the right to transmit at any time and all other members receive the transmitted information. A floor control mechanism is used to arbitrate requests for the right to transmit from different members of the group. The talk burst generated by the sender is packetized and is streamed to the receivers. 
     It is difficult for a PoC service to interwork with an IM service because of the explicit floor control mechanism of the PoC service. Floor control is used in the PoC service to ensure that only one client transmits audio packets at a time. In contrast, the IM service has no concept of floor control, as each member of the IM group may transmit at any time. The PoC service packetizes the audio and then streams the audio to other participants. This is not the case in the IM service, where the IM client buffers the audio packets and creates an audio clip, which is then distributed to other IM session participants. Since users in one group may desire to communicate with users in the other service, there is a need for a method and apparatus to allow the PoC service to interwork with the IM service. This may be accomplished with a method and apparatus for implicit floor control in push-to-talk over cellular systems. 
     SUMMARY 
     In one aspect of the invention, a method for implicit floor control in a push-to-talk over cellular system is provided. The method comprises the steps of generating a message in a communication system, where the communication system allows for multiple participants in a session and also includes a floor. The message is streamed to a server in the communication system which distributes the message to at least one participant in the session if the floor is idle. If the floor in not idle, the message is queued and sent when the floor becomes idle. 
     An apparatus is also provided. The apparatus comprises means for generating a message in a communication system, where the communication system allows for multiple participants in a session and also includes a floor; means for streaming a message to a server in the communication system; means for storing the message at the server; means for distributing the message to at least one participant if the floor is idle; and means for queuing the message if the floor is not idle. 
     Computer-readable instructions stored on computer-readable media are also provided. These instructions direct the generation of a message in a communication system, wherein the communication system allows for multiple participants in a session and includes a floor; streaming the message to a server in the communication system; distributing the message to at least one participant if the floor is idle; and queuing the message if the floor is not idle. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram that shows a PoC service and an IM service in a wireless communication system according to one embodiment. 
         FIG. 2  is a block diagram showing a PoC service interacting with PoC clients and IM clients according to one embodiment. 
         FIG. 3  is a diagram illustrating the distribution of talk bursts according to one embodiment. 
         FIG. 4  is a flow diagram illustrating the steps of a method according to one embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     The word “exemplary” is used herein to mean “serving as an example, instance, or illustration”. Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments. 
     There are some fundamental differences between PoC services and other services, such as IM services. As noted above, and shown in  FIG. 1 , PoC service uses floor control such that a PoC server  102  will only distribute audio packets received from a group member that has the floor. The PoC server  102  will discard audio packets received from other members of the group. A client must request and be granted the floor before being allowed to transmit audio packets. A client may be a mobile terminal or other communication device. In contrast, the IM service does not use floor control and has no concept of floor control. Each member of an IM group may transmit at any time. The IM client  108  buffers the audio packets and creates an audio clip which is then distributed to the other participants in the IM session. This differs from the PoC client, which packetizes the audio into packets and streams the packets to the other participants in the PoC session. As a result of these differences, IM clients typically experience greater delays than PoC clients. To allow a PoC service and an IM service to work together necessitates methods to overcome the difficulties posed by the floor control protocol and the streaming nature of the audio in the PoC service. 
       FIG. 2  is a block diagram that shows a PoC service and IM and PoC clients in a wireless communication system,  200 , according to one embodiment. The PoC server  202  interfaces with PoC clients  204  as described above. Each PoC client  204  packetizes audio and streams them to the PoC server for distribution to other clients,  204  as well as IM clients  208 . The explicit floor control mechanism used with the PoC service is replaced by an implicit mechanism that allows a participant to talk without first having to request the floor. This facilitates operation of a PoC service with other services, such as IM services. It should be understood that the IM service in  FIG. 2  may be any service that does not utilize a floor control protocol. 
     The PoC service is a half-duplex communication system operating among a number of participants. At any given time, at most one user has the right to transmit, i.e., has the floor. The other participants receive the transmission. The floor control protocol arbitrates the requests for floor. From the PoC server point of view, only one participant is transmitting and the PoC server transmits to the other participants in the session. Such an explicit floor control mechanism does not allow IM service participants to interface with the ongoing PoC session. 
     When an explicit floor control protocol is used, the PoC server maintains the state of the floor (busy or idle; if busy, the current owner, duration of current ownership, etc) at all times. In addition, the PoC server may also permit queueing of requests for the floor. Using the floor control protocol, a PoC client  204  requests the floor from the PoC server  202 . The PoC server  202  will then queue the request for the floor and acknowledge the request. When the PoC server  202  grants the floor to a PoC client  204 , the PoC server  202  notifies the PoC client  204  and the PoC client  204  then begins transmission. 
       FIG. 3  illustrates the flow of messages in an embodiment of the invention. The use of an explicit floor control mechanism is eliminated and replaced with an implicit floor control mechanism. A PoC client  302  and an IM client  310  both have messages to be transmitted. The other client may be an IM client or a client of a different, non-PoC system. Both clients stream their messages to the PoC server  304 . Neither client makes a request for the floor and neither is granted the floor. When PoC server  304  begins receiving the messages it first checks the state of the floor. If the floor is idle the PoC server  304  begins replicating the message and distributing it to other PoC clients  306  and an IM client  308 . If the floor is busy, that is, another talk burst or message is already being distributed, then the PoC server  304  buffers the incoming talk burst or message and places it in a queue for later distribution when the floor is idle. Once the floor is idle, the PoC server  304  begins transmitting the talk burst or message to all participants in the session. As the PoC server  304  receives the incoming messages or talk bursts from different participants or clients, it buffers the voice streams and serializes them so that the listener experience is not degraded. An advantage for clients is that there is no need to wait for the floor to be granted, but may begin talking immediately. 
       FIG. 4  details a method of providing implicit floor control in a push-to-talk over cellular (PoC) system. The method,  400 , begins when a client, begins streaming a talk burst to the PoC server in step  402 . The PoC server checks the state of the floor in step  404 . The PoC server determines if the floor is idle in decision block  406 . If the floor is idle, the PoC server replicates the talk burst in step  408  and then distributes the talk burst in step  410 . 
     If the floor is not idle in step  406 , the PoC server buffers the incoming talk burst in step  412  and places it in a queue, which is stored in the memory of the PoC server. The PoC server checks the queue to determine if all the talk bursts ahead of the just received talk burst have been sent in decision block  214 . If the talk burst is first in the queue, then the PoC server transmits the talk burst to the other participants in step  416 . If the talk burst is not first in the queue, then the PoC server continues to wait for the floor to become idle in step  418 . Once the floor becomes idle the message is transmitted as described in steps  416 . Once all talk bursts have been sent the process stops, in step  420 . 
     Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof. 
     Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention. 
     The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. 
     The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal. 
     The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.