# Java Voice Chat / Web Phone



## scrippi (21. März 2011)

Guten tag and die Java Gemeinde,

ich suche nach einer Lösung zur folgenden Problemstellung:

Ich möchte eine Seite bauen, in der sich User anmelden können und sich, ähnlich wie bei Skype, anrufen und schreiben können. Sicherlich ist Anmeldung, Chat etc alles kein Problem mit PHP, allerdings ist die Telefonie ein interessanter Punkt. Ich denke, das Java hierfür sich am besten eignet, in dem man über ein Applet die Telefonie macht. Allerdings fehlt mir hierzu der Ansatz.

Wäre nett, wenn mir jemand ein kurzes Tutorial schreiben könnte, bzw. hilfreiche Links geben könnte, wo sowas bereits umgesezt ist.

Vielen Dank
scrippi


----------



## genodeftest (21. März 2011)

Also... Ich würde mich an deiner Stelle zuerst mit der Sound-Übertragung beschäftigen, das scheint mir das schwierigste zu sein. Dazu eignet sich das JMF: Java Media Framework. Sinnvoll wäre, wenn du die Audio-Signale auch komprimieren könntest, außerdem solltest du (wie bei Skype) nur Daten übertragen, wenn der Sound eine gewisse Lautstärke erreicht hat.
Dann bräuchtest du eine Software auf dem Server, an der sich die User anmelden können (damit der Server die IP kennt), und die dann die IPs weiter gibt.
Den Text würde ich per TCP übertragen, den Sound via UDP. Die GUI der Clients würde ich zuletzt anpacken.

Dass du mit einem Applet auf die Sound-Geräte zugreifen kannst, will ich stark bezweifeln (außer du lässt es dir signieren). Außerdem sind die meisten Browser-Plugins (inklusive dem von Java) so instabil, dass du dem Nutzer damit wohl nur Ärger bereitest. Stattdessen würde ich eine jnlp-Datei nehmen. Die lässt sich genauso bequem vom Browser starten, ist von ihm aber unabhängig.

Für p2p-Anwendungen (Gruppenchat) ist ein Blick auf JXTA (https://secure.wikimedia.org/wikipedia/en/wiki/Jxta) empfehlenswert.

PS: so eine Alternative zu Skype würde mich auch mal interessieren. Planst du ein OpenSource-Projekt?

[EDIT]
Falls du dir einige Arbeit sparen möchtest, schau dir mal das SIP-Protokoll an: https://secure.wikimedia.org/wikipedia/en/wiki/Session_Initiation_Protocol
Das ist (nach Skype) sehr weit verbreitet und es gibt bereits einige Implementierungen, z.B. https://secure.wikimedia.org/wikipedia/en/wiki/Jitsi
Server-Software sollte es auch einiges geben...
[/EDIT]

[EDIT1]
Ein weiteres (weit verbreitetes) Protokoll ist XMPP (aber für Text- und Dateiübertragung). Außerdem gibt es noch das https://secure.wikimedia.org/wikipedia/en/wiki/Media_Gateway_Control_Protocol_(MGCP)
[/EDIT1]

[EDIT2]
Es gibt auch eine Java API für SIP: https://secure.wikimedia.org/wikipedia/en/wiki/Session_Initiation_Protocol_(Java)
[/EDIT2]

[EDIT3]
Jitsi hieß bis vor kurzem übrigens noch SIP Communicator – und ist dir unter diesem Namen evtl. schon mal über den Weg gelaufen...
Jetzt hab ich aber erst mal genug editiert 
[/EDIT3]


----------



## scrippi (21. März 2011)

mhm....kay, hört sich kompliziert an.

Die komplete Seite gehört zu einem Projektauftrag. Dieses wird, da es verkauft wird, nicht OpenSource sein. Ich kann jedoch, wenn das gewünscht ist, eine funktionierende Lösung der Telefoniefunktion offen stellen.

Apropos: falls sich jemand findet, der in der Lage ist, sowas fix zu coden, bzw eine Basis, würde ich das dementsprechend bezahlen.

mfg scrippi


----------

