The goal of the project is to develop an audio-conferencing service, using Push-To-Talk technology, deployed over wireless mesh network(in this case SMesh)
Push-To-Talk (PTT) is a two-way communication service, but one that works like a “walkie talkie”. While a normal phone call is full-duplex, meaning both parties can hear each other at the same time, PTT is half-duplex, the communication can only happen in one direction at any given time. PTT requires that the person who wishes to speak,presses a button while talking and then releases it when he is done.The receiving party/parties hear the sender’s voice without any action on their part, for example, without having to even answer the call
The 1-to-many communication feature in PTT enables a user to setup a voice communication with multiple users, where the participants speak one at a time and the voice is carried to all the participants of the conference. Due to the half-duplex nature of PTT, each participant in the audio conference must wait until the current speaker has finished speaking, and therefore the challenge involved in conducting an audio conference is, the co-ordination among the participants in a manner that is fair to every participant
The original idea was to develop a completely distributed algorithm to handle the co-ordination among the various participants of the conference. However, there are several drawbacks to this approach. Instead, we decided to solve the problem of coordination using a semi-distributed approach, one that has a coordinator per conference rather than peer-to-peer which could have been achieved using the distributed approach.
The project implementation details are here
I have finished the implementation of the control messaging except for the retransmissions of the messages which is required for reliability. Also, an application for capturing and playing voice is yet to be integrated into the client.
The things I’d like to add to the project:
1. Additional realiability - in case where the co-ordinator of the conference crashes.
2. Distribute the voice packets in an efficient manner.
3. GUI for the client.
Pratibha Mallya for the Advanced Distributed Systems Course at Johns Hopkins University