170 likes | 273 Views
Distributed Push-To-Talk over internet networks. By: Asaf Oren & Gilad Eisenberger Supervisor: Ittay Eyal Spring 2009 Networked Software Lab. Goals. Enable PTT communications between users without a central service Create implementation that works over the internet
E N D
Distributed Push-To-Talk over internet networks By: Asaf Oren & Gilad Eisenberger Supervisor: Ittay Eyal Spring 2009 Networked Software Lab
Goals • Enable PTT communications between users without a central service • Create implementation that works over the internet • Use reasonable amounts of bandwidth • Learn • Have fun
What is Push-To-Talk (PTT)? • A method of communicating • One user can talk at a time • Press button to start talking • Release button when finished
Internet networks • Available everywhere • Not reliable • IP Based • Great model for private (and public) networks • Accessible to us • This is what we base our assumptions on
Requirements (the “problem”) • Application, distributed • Joining, leaving • Request floor, release floor • User interface
Solution • C#, .Net, Visual Studio • UDP Networking • WinAPI for sound • Serialization • Low-level network protocol • Single threaded
Implementation • Originally – 3 phases • Server-Client • Mixed mode • Distributed • Actually – only 2 phases • Dropped mixed mode
Server-Client • Two different applications • Similar general design • Asymmetric protocol
Protocol message types • Server->Client • Add, Remove User • Floor Response, Changed • Sound (not reliable) • Client->Server • Connect, Disconnect • Floor Request, Released • Sound (not reliable)
Distributed • Symmetry • Tree topology • Changes in user management • Protocol changes • Remove Floor Changed message • Changes in User messages
Conclusion • Works! (demo at end) • Great proof-of-concept • Meets requirements • Many problems solved • Few problems left open • NAT, Reconnections, Security
Future work • Can be adapted to commercial product • Can add new features (not part of original problem) • Text messaging • Private talks
Questions • (and hopefully answers)