Jabber: Unterschied zwischen den Versionen

Aus Fachschaft_Informatik
Zur Navigation springen Zur Suche springen
(→‎Autojoin MUC: im Prinzip fertig)
Zeile 45: Zeile 45:
== Autojoin MUC ==
== Autojoin MUC ==
Wenn jemand zu viel Tagesfreizeit hat, moege er bitte recherchieren, wie man ejabberd2 dazu bringen kann, dass jemand bei der Registrierung einen Chatraum eingetragen bekommt, der erstmal automatisch gejoined wird. Vorzugsweise "Lobby" in der sich dann alle treffen.
Wenn jemand zu viel Tagesfreizeit hat, moege er bitte recherchieren, wie man ejabberd2 dazu bringen kann, dass jemand bei der Registrierung einen Chatraum eingetragen bekommt, der erstmal automatisch gejoined wird. Vorzugsweise "Lobby" in der sich dann alle treffen.
: Ich hab meine eigene API bekommen, nun kann ejabberdctl den Jabber Private Storage (XEP00-49 IIRC) anzeigen und schreiben. --[[Benutzer:Muelli|Muelli]] 23:32, 14. Apr. 2010 (CEST)


Bookmarks werden im private Storage gespeichert (XEP-0048). Private Storage ist bei ejabberd und mnesia in private_storage. Gut, GAYm^W Pidgin kann das natuerlich nicht: http://developer.pidgin.im/ticket/6353.


Bookmarks werden im private Storage gespeichert (XEP-0048). Private Storage ist bei ejabberd und mnesia in private_storage. Ein Bookmark sieht so aus:
Ein Bookmark sieht so aus:
<pre>
<pre>
{private_storage,
{private_storage,
Zeile 63: Zeile 65:


Am huebschsten waer wohl, wenn ejabberctl ein private_{g,s}et und make_autojoin_muc exportierte.
Am huebschsten waer wohl, wenn ejabberctl ein private_{g,s}et und make_autojoin_muc exportierte.
For the record:
<pre>
        bookmark  = '''<storage xmlns='storage:bookmarks'><conference minimize='0' jid='lobby@conference.jabber.mafiasi.de' autojoin='1' name='lobby'><nick>%s</nick></conference></storage>'''
        bookmark %= account.name
        ejabberdctl('private_set', {'user':account.name,
                                    'host':'jabber.mafiasi.de',
                                    'element':bookmark})
</pre>
: Im Prinzip fertig, denke ich. Man muesste noch dokumentieren, dass es dem Client frei steht, sein bookmark zu loeschen. Man koennte auch ueber OE Gruppen nachdenken. Und dann hier die Seite bisschen aufraeumen. --[[Benutzer:Muelli|Muelli]] 23:32, 14. Apr. 2010 (CEST)


= Was wird eigentlich gespeichert? =
= Was wird eigentlich gespeichert? =

Version vom 14. April 2010, 22:32 Uhr

JabberLogo.png

Unser aller FSR hat einen Jabber-Server eingerichtet auf dem alle Mitglieder der Fachschaft einen Account bekommen können.

Klicke dazu einfach auf jabber.mafiasi.de, gib deinen RZ-Account-Namen ein und merke dir das Passwort, es wird nur einmal angezeigt! Das gleiche kannst du tun, wenn du dein Passwort vergessen hast.

Nichts geht mehr?

Melde dich nicht im Forum, beim FSR[1] oder anderen obskuren Orten, sondern bei der Jabber-AG: jabber auf informatik punkt uni minus hamburg punkt de.


Features

Virtual Hosting

Wir koennen, aehnlich zu Google Apps, fuer andere Domains Jabber hosten. Insbesondere sind informatik.uni-hamburg.de aber spaeter vielleicht auch stud.uni-hamburg.de (oder so) zu nennen.

Wenn du gerne deine Domain gehosted haben moechtest, schreib an jabber@.


Shared Roster Groups

Du bist in einer Gruppe mit deinem Jahrgang und kannst die Anderen automatisch sehen (und vice versa). Einen huebschen in-band Mechanismus um das zu Verhindern gibt es noch nicht. Entweder jabber@ mitteilen, dass du gerne alleine bleiben moechtest, oder sog. Privacy Lists ueber deinen Client einrichten.



Clients einrichten

Einfach hier nachschauen: https://jabber.rwth-aachen.de/wiki/JUNe/Clients

Es gibt auch ein nettes Bilder Tutorial unter folgender Wiki-Seite: Jabberclients

Der Jabber-Server heißt jabber.mafiasi.de (in die Client-Einstellungen gehört kein "http://"!), eure Jabber-Id ist 9musterma@jabber.mafiasi.de.

Bugs/Todos:

  • Gibt es die Möglichkeit, dass wenn ich die Gruppen Manuell umbenannt hab, er die neuen Leute nicht immer wieder in die alten gruppen schmeißt?
    Da ich Miranda benutze kann ich Untergruppen erstellen--9posdorf 12:19, 3. Nov. 2009 (CET)
    Nein, gibt es nicht. Die Jahrgangsgruppen sind "Shared-Roster-Groups" und existieren auf dem Server nur einmal für alle. Du kannst dir natürlich nach Belieben neue Gruppen erstellen und die umbenennen, verschieben etc. wie du Lustig bist. --ArneKoehn 19:37, 4. Nov. 2009 (CET)
  • scheinbar werden bei einigen Leuten keine Vornamen angezeigt, könnte daran liegen dass sie Pidgin benutzen, bin mir da aber nicht sicher --9posdorf 23:30, 22. Nov. 2009 (CET)]
  • Idealerweise koennte der Benutzer sich seine Domains (sh. Features) in einem zentralen Management (Web?) Interface klicken. Die WebApp muesste dann den ejabberd entsprechend konfigurieren (sh. Intern). Aber wir sollten erstmal etwas Webmaessiges zum Verwalten von Gruppen zusammenkleben. --Muelli 03:21, 14. Apr. 2010 (CEST)
  • Ich wuenschte, ich koennte dem Jabberserver (oder einem Bot oder so) eine Datei via Jabber schicken, die dann ueber einem Webserver fuer eine bestimmte Zeit ausgeliefert wird. Aehnlich, wenn nicht sogar ziemlich genau, zu Jabber-Disk. --Muelli 03:39, 14. Apr. 2010 (CEST)


Autojoin MUC

Wenn jemand zu viel Tagesfreizeit hat, moege er bitte recherchieren, wie man ejabberd2 dazu bringen kann, dass jemand bei der Registrierung einen Chatraum eingetragen bekommt, der erstmal automatisch gejoined wird. Vorzugsweise "Lobby" in der sich dann alle treffen.

Ich hab meine eigene API bekommen, nun kann ejabberdctl den Jabber Private Storage (XEP00-49 IIRC) anzeigen und schreiben. --Muelli 23:32, 14. Apr. 2010 (CEST)

Bookmarks werden im private Storage gespeichert (XEP-0048). Private Storage ist bei ejabberd und mnesia in private_storage. Gut, GAYm^W Pidgin kann das natuerlich nicht: http://developer.pidgin.im/ticket/6353.

Ein Bookmark sieht so aus:

{private_storage,
    {"4tmuelle","jabber.mafiasi.de","storage:bookmarks"},
    {xmlelement,"storage",
        [{"xmlns","storage:bookmarks"}],
        [{xmlelement,"conference",
             [{"minimize","0"},
              {"jid","lobby@conference.jabber.mafiasi.de"},
              {"autojoin","1"},
              {"name","lobby"}],
             [{xmlelement,"nick",[],[{xmlcdata,<<"Muelli">>}]}]}]}}.

Man muesste nun einen pragmatischen Web finden, den String in die Mnesia Datenbank zu bekommen.

Am huebschsten waer wohl, wenn ejabberctl ein private_{g,s}et und make_autojoin_muc exportierte.

For the record:

        bookmark  = '''<storage xmlns='storage:bookmarks'><conference minimize='0' jid='lobby@conference.jabber.mafiasi.de' autojoin='1' name='lobby'><nick>%s</nick></conference></storage>'''
        bookmark %= account.name
        ejabberdctl('private_set', {'user':account.name,
                                    'host':'jabber.mafiasi.de',
                                    'element':bookmark})
Im Prinzip fertig, denke ich. Man muesste noch dokumentieren, dass es dem Client frei steht, sein bookmark zu loeschen. Man koennte auch ueber OE Gruppen nachdenken. Und dann hier die Seite bisschen aufraeumen. --Muelli 23:32, 14. Apr. 2010 (CEST)

Was wird eigentlich gespeichert?

  • Offline-Nachrichten (Nachrichten, die du Leuten schickst, die offline sind und umgekehrt. Werden nach dem Empfang gelöscht)
  • Zusätzliche Roster-Einträge (Leute von anderen Jabber-Servern, die du auf deiner Kontaktliste hast)
  • Eigene eingerichtete Gruppen (sind im Prinzip auch Roster-Einträge)
  • History von MUC-Chatrooms, sofern in der Raumkonfiguration eingestellt (nur die letzten n Nachrichten, n ∈ ℕ, n einstellbar) - öffentlich einsehbar, sofern der Raum öffentlich ist
  • Deine RZ-Kennung sowie dein Jabber-Passwort und Jahrgangszugehörigkeit
  • Daten, die du auf deiner vCard angibst - öffentlich einsehbar
  • Deine Privacy Lists (XEP-0016) sofern welche erstellt
  • Der Zeitpunkt, an dem du zuletzt online warst

Wer hat alles administrativen Zugriff auf den Jabberserver?

Warum Jabber?

Mit Jabber kann man, wie mit ICQ, MSN oder so auch, Instant Messaging machen. Warum sollte man sich nun aber von diesen Loesungen abwenden und Jabber benutzen? Nun, darauf gibt es sehr viele Antworten und es gibt viele Seiten im Netz, die genau diese Frage diskutieren.

Die wichtigsten Gruende, Jabber anstatt ICQ, etc.. zu nutzen sind wohl aber

  • Sicherheit: Im Gegensatz zu ICQ koennen Passwoerter und Nachrichten verschluesselt, also nicht im Klartext uebertragen werden, sodass keiner die Nachrichten mitlesen kann.
  • Clientvielfalt: Da Jabber ein freies und offenes Protokoll ist, ist es sehr gut dokumentiert. Das ermoeglicht Programmierern, einen Jabberclient zu schreiben. Somit gibt es eine Vielzahl an Programmen, mit denen man Jabber sprechen kann. Und das auf saemtlichen Plattformen und Betriebssystemen
  • AGB: Jabber ist frei und gehoert keiner Firma. Somit kann keiner, wie bei ICQ, fiese AGB festlegen denen du zustimmen musst, bevor du das Programm oder Protokoll nutzen kannst.
  • Gateways: Wenn du noch deinen ICQ Account brauchst, um deine Freunde von Jabber zu ueberzeugen, kannst du das weiterhin tun! Der Jabberserver bietet einen Tranportservice, das heisst, dass du deine ICQ Daten eingibst und mit deinen ICQ Kontakten ganz normal weiterchatten kannst.

Hier einige Seiten, die dieses Thema diskutieren:


Intern

ejabberd

Wir benutzen ejabberd, der unter einem "ejabberd" Benutzer in /usr/local/ laeuft. Der Benutzer hat kein Passwort und keine SSH PublicKeys. Somit kann also nur root in den ejabberd Benutzerkontext eintreten. Oder Hacker die den ejabberd aufmachen ;)

Neue Domain

Um ejabberd fuer eine neue Domain (bspw. cryptobitch.de) zu konfigurieren sind im Prinzip folgende Schritte noetig:

Die Domain muss xmpp SRV records haben:

Name: _xmpp-client._tcp
Type: SRV
Value: 5 0 5222 jabber.mafiasi.de.
Name: _xmpp-server._tcp
Type: SRV
Value: 5 0 5269 jabber.mafiasi.de.

Fuer tinydns kann man einen Record Builder benutzen.

Wenn das geklappt hat sollte es so aussehen:

$ dig +short SRV _xmpp-server._tcp.cryptobitch.de
10 100 5269 jabber.mafiasi.de.
$ dig +short SRV _xmpp-client._tcp.cryptobitch.de
10 100 5222 jabber.mafiasi.de.

Am ejabberd muss dann hosts und evtl. host_config wie folgt angepasst werden:

{hosts, ["jabber.mafiasi.de", "cryptobitch.de"]}.
{host_config, "cryptobitch.de",
 [
  {acl, admin, {user, "muelli", "cryptobitch.de"}}
 ]
}.

Anschliessend muss der Jabberserver neugestartet werden :( Hart. Load_config bringt es nicht.

Nun kann mit ejabberdctl register muelli cryptobitch.de somepasswort ein neuer Benutzer registriert werden.


  1. Natürlich kennt der FSR notfalls Leute, die dir bei Jabber-Problemen helfen könnten.