Described is a communication mechanism that provides push-to-talk
functionality for mobile and desktop computing environments. Mobile and
desktop computers are configured as client computers in a client/server
architecture. Some of the client computers are configured to handle
multiple push-to-talk sessions simultaneously. If multiple streams from
different sessions are active at the same time, the client computer may
determine which of these overlapped streams to record and then record
them for later playback. A server handles the registration of the client
computers, manages the multiple sessions for each of the client
computers, and performs a floor control process so that each push-to-talk
session operates in a half-duplex mode.