1 / 17

Distributed Push-to-Talk Implementation over Internet Networks

This project by Asaf Oren and Gilad Eisenberger, supervised by Ittay Eyal in Spring 2009, aims to enable Push-to-Talk (PTT) communications without relying on a central service. The implementation is designed to operate over the internet using efficient bandwidth. PTT allows one user to communicate at a time by pressing a button. The solution utilizes C# and .NET for development, along with UDP networking and WinAPI for sound management. The end result is a proof-of-concept demonstrating effective PTT functionality, addressing various user management and protocol challenges.

ulric-baker
Télécharger la présentation

Distributed Push-to-Talk Implementation over Internet Networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Distributed Push-To-Talk over internet networks By: Asaf Oren & Gilad Eisenberger Supervisor: Ittay Eyal Spring 2009 Networked Software Lab

  2. 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

  3. 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

  4. 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

  5. Requirements (the “problem”) • Application, distributed • Joining, leaving • Request floor, release floor • User interface

  6. Solution • C#, .Net, Visual Studio • UDP Networking • WinAPI for sound • Serialization • Low-level network protocol • Single threaded

  7. Protocol Stack

  8. Implementation • Originally – 3 phases • Server-Client • Mixed mode • Distributed • Actually – only 2 phases • Dropped mixed mode

  9. Server-Client • Two different applications • Similar general design • Asymmetric protocol

  10. General application structure

  11. Protocol message types • Server->Client • Add, Remove User • Floor Response, Changed • Sound (not reliable) • Client->Server • Connect, Disconnect • Floor Request, Released • Sound (not reliable)

  12. Distributed • Symmetry • Tree topology • Changes in user management • Protocol changes • Remove Floor Changed message • Changes in User messages

  13. General structure of generic client

  14. Conclusion • Works! (demo at end) • Great proof-of-concept • Meets requirements • Many problems solved • Few problems left open • NAT, Reconnections, Security

  15. Future work • Can be adapted to commercial product • Can add new features (not part of original problem) • Text messaging • Private talks

  16. Demo

  17. Questions • (and hopefully answers)

More Related