You are here: SE » ThesisDPPXV

ThesisDPPXV: Verbesserung der Kommunikationsmöglichkeiten in Saros

(Bachelorarbeit) von Olaf Loga, betreut von Karl Beecher und Stephan Salinger

Diese Arbeit behandelt die Verbesserung der Kommunikation (schriftlich wie mündlich) in Saros.

Ziele

  • Überarbeitung und Instandsetzung der bestehenden Chat Funktion
  • Erstellen einer VoIP Anwendung in Saros
  • Möglichkeit zur statistischen Auswertung der Benutzung der Kommunikation (z.B. Chat- bzw Sprachanteil)
  • Lokale Logs auf PCs der Benutzer sowohl für Chat als auch für VoIP

Konzept

  • Chatfunktion wurde als Multi User Chat mithilfe der Smack Api implementiert. Könnte evtl. später noch z.B. um eine Statistikfunktion o.ä. erweitert werden.
  • VoIP: Da in Saros die Jingle und Smack API abstrahiert ist, setze ich auf dem schon programmierten StreamListener auf. Dieser StreamListener soll jedem Dienst (VoIP, Daten, Video, etc…) innerhalb von Saros einen Input sowie Outputstream übergeben. Die Aufgabe besteht nun also darin, dem StreamListener einen encodierten Audiostream zu übergeben. Als Eingabe sollen hauptsächlich direkte Eingaben über ein Mikrofon encodiert und versendet werden. Jedoch wäre als Eingabe auch eine Audiodatei denkbar. Als Encoder benutze werde ich Speex (bzw die entsprechende Java Speex Api 'jspeex'). Es wird jedoch darauf geachtet, dass der Codec austauschbar wäre, sodass zu einem späteren Zeitpunkt auch andere Codecs verwendet werden können. Die in XMPP bzw Smack Jingle eingebaute Codierungsfunktion lässt sich aufgrund der Abstraktion auf einen StreamListener nicht benutzen. Sobald ein Benutzer nun einen Audiostream erhält, soll dieser decodiert und ausgegeben werden. Auch eine lokale Aufnahme (bei Bedarf) des gesamten VoIP Verkehrs sollte möglich sein. Außerdem soll es möglich sein ein VoIP Gespräch statistisch auszuwerten (z.B. durch Anteil der Sprechzeiten).

Weekly Reports

Week 0:

  • Introduction to Saros
  • Introduction to XMPP
  • Introduction to Speex Java API (jspeex)
  • Adding implemented Chat to Saros and testing

Week 1:

  • Testapp for Audio Encoding (record sth. and play it) with JSpeex

Week 2:

  • Simple Integration in Saros

Week 3:

  • Done: First simple peer to peer VoIP Integration (in Saros) is working

  • Problems: stuttering Audio playpack

  • Next: Fix stuttering playpack
  • VoIP Communication with more than 2 people
  • Test some different Encoder settings
  • Prepare the Introduction Presentation for next week (14.1)

Week 4:

  • Done: Readded chat function prototype
  • Preparing introduction presentation
  • Try to fix voip stuttering problems

  • Next: Add auto generated passwords for chatrooms add chat logging functions create preference page for chat function

  • Comment: VoIP feature not ready for release :/

Week 5:

  • Done: Chat function

  • Problems: VoIP is still stuttering

  • Next: Adding Testcases for the Chat function
  • Test some other settings for AudioCodec and / or test other codec than Speex (e.g. iLBC) to fix the stuttering problem

Week 6:

  • Done: Chat function patch is finished after some bugfixes and changes
  • Added testcases for the chat function
  • Testing the new Release
  • Start to fix the VoIP problems

  • Problems: StreamService sends & receives packets not "fair". e.g. The one client received 250 packets in the same time the other client only received 120 packets. That is a big problem with the VoIP function. (I have to discuss it with Stephan L. next week) --> It was an error in my code. StreamService works fine smile

  • Next: try to implement the VoIP function with Jingle / XMPP (without the StreamService) --> Aborted, because VoIP works fine with Stream Interface

Week 7:

Week 8:

Week 9:

Start written thesis

Todo

  • Fix stuttering playpack --> Done
  • VoIP Communication with more than 2 people.

Requierments

  • VoIP Communication in Saros in a shared Project
  • All Users in a shared Project can talk to each other
  • Statistic about Communcation

Usecases

Optional

  • Possibility to record the VoIP Session
  • Possibility to log the chat

Comments