Push-to-Talk

Description
I would implement a Push-To-Talk activity for the XO. It would act like a walkie-talkie. It would provide XO with the much needed VoIP. I would also enable it to play media files on other XO s from the XO which is sharing the media file.

Features

 * 1) Sugar activity model based
 * 2) Streams music
 * 3) Silent until button pressed
 * 4) Mixes simultaneous speakers
 * 5) Activity has to be shared to allow streaming
 * 6) Multiple connections
 * 7) VoIP
 * 8) User who may not get an invitation to join the activity may request one to the caller from the neighborhood view.

Individual Test Distribution Story:
 * 1) Caller shares activity in the neighborhood or to a specific user.As such all users with Push-to-talk receive an invitation to join / share the activity to converse with the caller.
 * 2) The call by the caller is accepted by the users by clicking on a green button in the GUI of the Push-to-Talk.
 * 3) Users who may not get an invitation may request the caller to allow him/her to join the activity.This may appear as yellow notification on the GUI of the caller.The name of the user would also be displayed.The caller may press the yellow notification / button to accept the user else he may ignore it.Once the user is accepted he is treated like a normal user.
 * 4) The users could disconnect from the call by pressing on the Red button in the GUI to leave the shared activity.
 * 5) Similarly the caller may disconnect from the users of the shared activity.He would press the red button and then the name of the user he would like to disconnect.
 * 6) To end activity, caller disconnects from the activity by pressing STOP.

Technologies

 * 1) TCP/IP and audio interfacing is what would be required.
 * 2) Later icecast server for streaming music MP3 audio streams.
 * 3) Gtk+ would be used for developing the graphics part.
 * 4) Use Farsight.

Needs

 * 1) It would provide XO with a VoIP activity.It is about facilitating free speech. It is but natural for humans to speak.The very ability to talk has brought mankind this far.Thus, Push-to-Talk would provide an easy way to converse with anyone who is using this activity.
 * 2) Locally, it would allow conversations and allow sharing of media files.It would also be used as a platform to develop a community radio http://wiki.laptop.org/go/Xoradio
 * 3) It would allow interactions between children from different schools across the globe.It would lead to free speech.
 * 4) It could also be used a Disaster Management tool.

"A low-cost walkie talkie helps to meet two of the very important goals of Sugar Labs and free software communities :-
 * 1) "To make it “simple” to share activities. This will require an architecture that allows discovery of activities;
 * 2) To provide a forum for discussion and support for technology and development for learning.

This activity puts communication at the front seat. Communication and learning go hand in hand with each other. I look forward to see better communication facilitation among its users through this activity." - Manusheel Gupta (manu [AT] laptop [DOT] org)

TimeLine

 * 1) Implement Command Line Interface for setting up a multicast network.
 * 2) Establish chatting interface through which users can chat textually through the command line.
 * 3) Work on icecast server


 * 1) Add audio interface.
 * 2) Work on GUI
 * 3) Upload snapshots of GUI on wiki.


 * 1) Change from CLI to GUI


 * 1) Documentation
 * 2) Testing


 * 1) Defect Tracking
 * 2) Work on Alpha Release

[ALPHA RELEASE]


 * 1) Write "Read Me" file. i.e Work on Documentation
 * 2) Provide Bug List
 * 3) Testing on XO
 * 4) Community Testing


 * 1) Feedback from Community
 * 2) Minor tweaking
 * 3) Prepare for Beta Release
 * 4) Commenting the other parts of the push-to-talk source code, to make it a little easier to understand for newcomers to this project.

Contact
I am Zubair Assad.Feel free to contact me at: i.am.zubu[AT]gmail[DOT]com