2010-11-18 8 views
1

Ich habe vor einiger Zeit gelesen, dass man externe Jabber-Komponenten (XEP-0114) konfigurieren kann, um XMPP-Zeilengruppen im Namen eines beliebigen Benutzers zu senden. Angenommen, ich habe eine Komponente an (component.localhost) gebunden, und ich möchte, dass sie eine Nachrichtenzeilengruppe mit dem Attribut "from" an "user @ localhost" sendet.Externe Jabber-Komponente zum Senden von Zeilengruppen im Namen eines Benutzers konfigurieren

Ich versuche das mit Ejabberd zu erreichen. Ich werde nicht überrascht sein, wenn ich ejabberd src hacken muss, damit das funktioniert (wenn überhaupt möglich).

Antwort

5

Wenn Sie ejabberd verwenden, können Sie in Ihrer Servicedefinition die Option {service_check_from, false} verwenden, um die Überprüfung für das Attribut "von" zu deaktivieren.

Beachten Sie jedoch, dass XEP 0114 erfordert, dass der Host-Teil der JIDs mit dem Namen der Komponente übereinstimmt.

Sehen Sie die corresponding section of ejabberd documentation für alle blutigen Details.

+0

Hallo Davux, Es scheint, als hättest du mich davor bewahrt, meine Server-Komponente zu vervollständigen, an der ich gearbeitet habe, jetzt kann ich dasselbe in meinen externen Komponenten haben ... genau das habe ich gesucht (obwohl ich noch nicht getestet habe) aber sieht vielversprechend aus) .... Danke –

0

Technisch müssen Sie die Komponente tatsächlich schreiben, aber das kann leicht getan werden. Sie müssen zuerst ejabberd confugre, so dass es Verbindungen auf einem bestimmten für Ihre Komponente, mit einem gegebenen componet JID und einem Passwort akzeptiert. Die Standardkonfigurationsdatei enthält mehrere Beispiele, beispielsweise für Gateways.

Sobald dies erledigt ist, verbinden Sie eine XMPP-Bibliothek/einen Client mit den Anmeldeinformationen dieser Komponente und Sie sollten gut gehen! Die einzige Einschränkung besteht darin, dass Sie gültiges XML senden.

+0

Hallo Julien ... Ich habe bereits mehrere Komponenten laufen (binden an component.localhost) und ich bin in der Lage, Xmpp Zeilengruppen mit "von" Attribut auf "[email protected]" erfolgreich zu senden. Aber ich suche Konfigurationsschritte (vorzugsweise mit ejabberd), die es meiner Komponente erlauben, Nachrichten im Auftrag von "user @ localhost" zu senden. Momentan, wenn meine Komponente dies versucht, erhalten sie einen 400 (Bad Request) Fehler vom Jabber-Server. –

0

Ihre Komponente darf in der Regel nur Zeilenumbrüche senden, die von *@component.domain.com zu senden sind, anstatt @ .domain.com. Dies ist eine Sicherheitsfunktion.

Wenn Sie diese Funktionalität wünschen, müssen Sie möglicherweise ein Server-Plug-in anstelle einer externen Komponente schreiben.