Ich versuche, Benutzer os "Windows XP, Windows 7, Linux .... etc"
zu lesen, wenn sie verbunden sind Ich arbeite an Ejabberd 2.1.x, aber nichts mir gezeigt.ejabberd: Benutzer (Version & os) beim Verbinden mit dem Server
Was ich tue, ist:
-module(mod_test).
-behaviour(gen_mod).
%% gen_mod callbacks
-export([start/2, stop/1]).
%% hook handlers
-export([user_send_packet/3, filter_packet/1]).
-include("ejabberd.hrl").
-include("jlib.hrl").
-define(PROCNAME, ejabberd_mod_filter).
start(Host, _Opts) ->
ejabberd_hooks:add(user_send_packet, Host, ?MODULE, user_send_packet, 75),
ejabberd_hooks:add(filter_packet, global, ?MODULE, filter_packet, 75),
ok.
stop(Host) ->
ejabberd_hooks:delete(filter_packet, global, ?MODULE, filter_packet, 75),
ejabberd_hooks:delete(user_send_packet, Host, ?MODULE, user_send_packet, 75),
ok.
user_send_packet(_From, _To, _Packet) ->
ok.
filter_packet({From, To, Packet}) ->
io:format("~p", [Packet]),
filter_packet(Arg) ->
Arg.
Es Rückkehr mit allen Benutzern, Daten wie (Status, Ressourcen, Kappen ... etc) else (Version, os, Client-Name) gibt es eine Möglichkeit, mach das ?
ich es glaube, ist weg, dies zu tun cuz in (muc Chat) gibt es viele bieten diese wie tun, wenn ich ein:
version some_user
Rückkehr zu mir mit diesem msg:
name : Psi+
version : 1.1
os : Windows XP
aber ich weiß nicht, wie sie das machen.
Aus Interesse, gibt es einen bestimmten Grund, warum Sie sind auf ejabberd 2.1.x? Seither gab es viele neuere Veröffentlichungen. – legoscia
Werfen Sie einen Blick auf das Modul [os] (http://erlang.org/doc/man/os.html) Erlang. Vielleicht wird es dich für die Lösung führen. –
@legoscia Ich habe an dieser Version vor 3 Jahren gearbeitet und ich habe viele Dinge hinzugefügt und einige Fehler behoben, so dass ich diese Version nicht auf die neuere Version ändern möchte. In meinem Fall: catch (Name, Betriebssystem, Version) des Clients ist es möglich, diese Informationen bei der Benutzeranmeldung auf dem Server zu erhalten? –