SlideShare a Scribd company logo
1 of 37
Download to read offline
Integracja komunikatora opartego o protokół
XMPP z dużym portalem internetowym
Janusz Dziemidowicz
nasza-klasa.pl
PLNOG 10-11 września 2009
Spis rzeczy
XMPP i ejabberd
XMPP
Erlang
ejabberd
XMPP a HTTP
BOSH
Implementacje
Optymalizacja
Integracja
Uwierzytelnianie
Listy znajomych
Informowanie serwera XMPP o zmianach
Spis rzeczy
XMPP i ejabberd
XMPP
Erlang
ejabberd
XMPP a HTTP
BOSH
Implementacje
Optymalizacja
Integracja
Uwierzytelnianie
Listy znajomych
Informowanie serwera XMPP o zmianach
XMPP
Extensible Messaging and Presence Protocol, zastosowania:
komunikatory,
publish/subscribe,
rozmowy audio/wideo,
gry online.
Dlaczego XMPP?
Zalety XMPP:
mnogość rozszerzeń,
prostota,
rozszerzalność,
federacje,
dużo oprogramowania.
Wady XMPP:
mnogość rozszerzeń,
XML,
a właściwie to nawet nie XML, a „prawie” XML.
Dlaczego XMPP?
Zalety XMPP:
mnogość rozszerzeń,
prostota,
rozszerzalność,
federacje,
dużo oprogramowania.
Wady XMPP:
mnogość rozszerzeń,
XML,
a właściwie to nawet nie XML, a „prawie” XML.
Dlaczego XMPP?
Zalety XMPP:
mnogość rozszerzeń,
prostota,
rozszerzalność,
federacje,
dużo oprogramowania.
Wady XMPP:
mnogość rozszerzeń,
XML,
a właściwie to nawet nie XML, a „prawie” XML.
Erlang
Erlang - funkcyjny język programowania opracowany przez firmę
Ericsson.
Cechy:
funkcyjny,
otwarty kod źródłowy,
wymiana kodu w locie,
równoległość oparta o wymianę komunikatów,
rozproszony.
Erlang
Erlang - funkcyjny język programowania opracowany przez firmę
Ericsson.
Cechy:
funkcyjny,
otwarty kod źródłowy,
wymiana kodu w locie,
równoległość oparta o wymianę komunikatów,
rozproszony.
ejabberd
Cechy:
napisany w Erlangu,
dobra zgodność ze standardem XMPP oraz wieloma
rozszerzeniami,
obsługa wielu domen,
wbudowana obsługa HTTP.
Ale dlaczego ejabberd?
wydajność,
skalowalność,
modularność,
istnieją już wdrożenia na milion użytkowników online.
Problemy:
nie zadziała „z pudełka”,
fala użytkowników,
HTTP,
integracja z portalem.
Ale dlaczego ejabberd?
wydajność,
skalowalność,
modularność,
istnieją już wdrożenia na milion użytkowników online.
Problemy:
nie zadziała „z pudełka”,
fala użytkowników,
HTTP,
integracja z portalem.
Spis rzeczy
XMPP i ejabberd
XMPP
Erlang
ejabberd
XMPP a HTTP
BOSH
Implementacje
Optymalizacja
Integracja
Uwierzytelnianie
Listy znajomych
Informowanie serwera XMPP o zmianach
BOSH
Bidirectional-streams Over Synchronous HTTP
Mechanizm dwukierunkowej komunikacji przez HTTP, podobny do
protokołu Bayeux (Comet). Przystosowany do przesyłania
strumieni XML.
Działanie:
1. Klient wysyła żądanie HTTP, serwer „zawiesza” połączenie.
2. Jeśli serwer ma coś do wysłania, to przesyła to nawiązanym
połączeniem, klient natychmiast nawiązuje kolejne połączenie.
3. Jeśli klient ma coś do wysłania, nawiązuje drugie połączenie,
w którym przesyła dane, serwer kończy poprzednie połączenie,
a nowe „zawiesza”.
BOSH
Bidirectional-streams Over Synchronous HTTP
Mechanizm dwukierunkowej komunikacji przez HTTP, podobny do
protokołu Bayeux (Comet). Przystosowany do przesyłania
strumieni XML.
Działanie:
1. Klient wysyła żądanie HTTP, serwer „zawiesza” połączenie.
2. Jeśli serwer ma coś do wysłania, to przesyła to nawiązanym
połączeniem, klient natychmiast nawiązuje kolejne połączenie.
3. Jeśli klient ma coś do wysłania, nawiązuje drugie połączenie,
w którym przesyła dane, serwer kończy poprzednie połączenie,
a nowe „zawiesza”.
Implementacje
W serwerach:
ejabberd,
Tigase,
Openfire.
Zewnętrzne:
Punjab,
Araneo,
JabberHTTPBind,
rhb,
implementacja NK.
Uwaga
BOSH w aktualnym ejabberd (2.0.5) posiada poważny błąd, który
czyni go bezużytecznym przy większych obciążeniach.
Implementacje
W serwerach:
ejabberd,
Tigase,
Openfire.
Zewnętrzne:
Punjab,
Araneo,
JabberHTTPBind,
rhb,
implementacja NK.
Uwaga
BOSH w aktualnym ejabberd (2.0.5) posiada poważny błąd, który
czyni go bezużytecznym przy większych obciążeniach.
Implementacje
W serwerach:
ejabberd,
Tigase,
Openfire.
Zewnętrzne:
Punjab,
Araneo,
JabberHTTPBind,
rhb,
implementacja NK.
Uwaga
BOSH w aktualnym ejabberd (2.0.5) posiada poważny błąd, który
czyni go bezużytecznym przy większych obciążeniach.
Implementacje
W serwerach:
ejabberd,
Tigase,
Openfire.
Zewnętrzne:
Punjab,
Araneo,
JabberHTTPBind,
rhb,
implementacja NK.
Uwaga
BOSH w aktualnym ejabberd (2.0.5) posiada poważny błąd, który
czyni go bezużytecznym przy większych obciążeniach.
Optymalizacja
keep-alive,
kompresja,
rezygnacja z XML - można wykorzystać np. JSON,
rezygnacja z HTTP - zamiast tego połączenia TCP przez
flasha.
BOSH w nadchodzącym ejabberd 2.1 jest sporo wydajniejszy
i lepiej napisany.
Optymalizacja
keep-alive,
kompresja,
rezygnacja z XML - można wykorzystać np. JSON,
rezygnacja z HTTP - zamiast tego połączenia TCP przez
flasha.
BOSH w nadchodzącym ejabberd 2.1 jest sporo wydajniejszy
i lepiej napisany.
Optymalizacja
keep-alive,
kompresja,
rezygnacja z XML - można wykorzystać np. JSON,
rezygnacja z HTTP - zamiast tego połączenia TCP przez
flasha.
BOSH w nadchodzącym ejabberd 2.1 jest sporo wydajniejszy
i lepiej napisany.
Optymalizacja
keep-alive,
kompresja,
rezygnacja z XML - można wykorzystać np. JSON,
rezygnacja z HTTP - zamiast tego połączenia TCP przez
flasha.
BOSH w nadchodzącym ejabberd 2.1 jest sporo wydajniejszy
i lepiej napisany.
Spis rzeczy
XMPP i ejabberd
XMPP
Erlang
ejabberd
XMPP a HTTP
BOSH
Implementacje
Optymalizacja
Integracja
Uwierzytelnianie
Listy znajomych
Informowanie serwera XMPP o zmianach
Podwójne uwierzytelnianie
Po zalogowaniu w portalu, użytkownik, w najprostszym wypadku,
musi zalogować się ponownie przez XMPP.
Rozwiązania:
integracja sesji XMPP z sesjami portalu,
tworzenie sesji BOSH/XMPP przez portal,
wydawanie „biletów”, które serwer XMPP może łatwo
sprawdzić.
Podwójne uwierzytelnianie
Po zalogowaniu w portalu, użytkownik, w najprostszym wypadku,
musi zalogować się ponownie przez XMPP.
Rozwiązania:
integracja sesji XMPP z sesjami portalu,
tworzenie sesji BOSH/XMPP przez portal,
wydawanie „biletów”, które serwer XMPP może łatwo
sprawdzić.
Listy znajomych
ejabberd musi pobrać listy znajomych użytkownika, aby wiedzieć
jak przesyłać informacje o statusie użytkownika.
Do opracowania:
API do pobierania list znajomych (o ile takiego jeszcze nie
ma),
sposób na informowanie ejabberd o zmianach.
Listy znajomych
ejabberd musi pobrać listy znajomych użytkownika, aby wiedzieć
jak przesyłać informacje o statusie użytkownika.
Do opracowania:
API do pobierania list znajomych (o ile takiego jeszcze nie
ma),
sposób na informowanie ejabberd o zmianach.
Listy znajomych - problemy
Czy będzie można zmieniać listy z poziomu XMPP?
Co ze znajomymi spoza portalu (federacje)?
Uwaga
Oryginalny moduł ustawień prywatność pobiera listę znajomych dla
każdej wiadomości.
Listy znajomych - problemy
Czy będzie można zmieniać listy z poziomu XMPP?
Co ze znajomymi spoza portalu (federacje)?
Uwaga
Oryginalny moduł ustawień prywatność pobiera listę znajomych dla
każdej wiadomości.
Zmiany
O czym trzeba informować ejabberd:
zmiany w listach znajomych,
usunięcie/zablokowanie konta,
zmiana hasła/nazwy użytkownika,
inne w zależności od potrzeb (z czasem będzie tego coraz
więcej).
Uwaga
ejabberd posiada mechanizm do informowania o zmianach
w listach znajomych, ale nie działa on poprawnie.
Zmiany
O czym trzeba informować ejabberd:
zmiany w listach znajomych,
usunięcie/zablokowanie konta,
zmiana hasła/nazwy użytkownika,
inne w zależności od potrzeb (z czasem będzie tego coraz
więcej).
Uwaga
ejabberd posiada mechanizm do informowania o zmianach
w listach znajomych, ale nie działa on poprawnie.
Zmiany
O czym trzeba informować ejabberd:
zmiany w listach znajomych,
usunięcie/zablokowanie konta,
zmiana hasła/nazwy użytkownika,
inne w zależności od potrzeb (z czasem będzie tego coraz
więcej).
Uwaga
ejabberd posiada mechanizm do informowania o zmianach
w listach znajomych, ale nie działa on poprawnie.
Rozszerzanie ejabberd
XMPP Ad-Hoc Commands
możliwość zdefiniowania dowolnych poleceń o ustalonych
nazwach,
przesyłanie parametrów oraz odbieranie wyników,
kontrola dostępu,
formularze dla graficznych klientów XMPP.
ejabberdctl
podobne możliwości jak Ad-Hoc,
wywoływane z wiersza poleceń przez administratora.
Rozszerzanie ejabberd
XMPP Ad-Hoc Commands
możliwość zdefiniowania dowolnych poleceń o ustalonych
nazwach,
przesyłanie parametrów oraz odbieranie wyników,
kontrola dostępu,
formularze dla graficznych klientów XMPP.
ejabberdctl
podobne możliwości jak Ad-Hoc,
wywoływane z wiersza poleceń przez administratora.
Dziękuję za uwagę

More Related Content

Similar to PLNOG 3: Janusz Dziemidowicz - Integracja komunikatora opartego o protokół XMPP z dużym portalem internetowym

ansible kmonticolo bezlogo
ansible kmonticolo bezlogoansible kmonticolo bezlogo
ansible kmonticolo bezlogo
Kamil Monticolo
 

Similar to PLNOG 3: Janusz Dziemidowicz - Integracja komunikatora opartego o protokół XMPP z dużym portalem internetowym (9)

Architektura serwisow webowych
Architektura serwisow webowychArchitektura serwisow webowych
Architektura serwisow webowych
 
ansible kmonticolo bezlogo
ansible kmonticolo bezlogoansible kmonticolo bezlogo
ansible kmonticolo bezlogo
 
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOpsPLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
 
Python io
Python ioPython io
Python io
 
PLNOG 21: Krzysztof Toczyski - Wdrożenie_protokołu_IPv6_w_sieci_MPLSv4_jako_6VPE
PLNOG 21: Krzysztof Toczyski - Wdrożenie_protokołu_IPv6_w_sieci_MPLSv4_jako_6VPEPLNOG 21: Krzysztof Toczyski - Wdrożenie_protokołu_IPv6_w_sieci_MPLSv4_jako_6VPE
PLNOG 21: Krzysztof Toczyski - Wdrożenie_protokołu_IPv6_w_sieci_MPLSv4_jako_6VPE
 
PLNOG 8: Łukasz Bromirski - IP Anycast - Ochrona i skalowanie usług sieciowych
PLNOG 8: Łukasz Bromirski - IP Anycast - Ochrona i skalowanie usług sieciowych PLNOG 8: Łukasz Bromirski - IP Anycast - Ochrona i skalowanie usług sieciowych
PLNOG 8: Łukasz Bromirski - IP Anycast - Ochrona i skalowanie usług sieciowych
 
PLNOG 8: Bartłomiej Anszperger - MPLS - Co to jest? Z czym to gryźć? Jak i po...
PLNOG 8: Bartłomiej Anszperger - MPLS - Co to jest? Z czym to gryźć? Jak i po...PLNOG 8: Bartłomiej Anszperger - MPLS - Co to jest? Z czym to gryźć? Jak i po...
PLNOG 8: Bartłomiej Anszperger - MPLS - Co to jest? Z czym to gryźć? Jak i po...
 
Python IO
Python IOPython IO
Python IO
 
PLNOG 9: Łukasz Bromirski, Rafał Szarecki - MPLS VPN - Architektura i przeglą...
PLNOG 9: Łukasz Bromirski, Rafał Szarecki - MPLS VPN - Architektura i przeglą...PLNOG 9: Łukasz Bromirski, Rafał Szarecki - MPLS VPN - Architektura i przeglą...
PLNOG 9: Łukasz Bromirski, Rafał Szarecki - MPLS VPN - Architektura i przeglą...
 

PLNOG 3: Janusz Dziemidowicz - Integracja komunikatora opartego o protokół XMPP z dużym portalem internetowym

  • 1. Integracja komunikatora opartego o protokół XMPP z dużym portalem internetowym Janusz Dziemidowicz nasza-klasa.pl PLNOG 10-11 września 2009
  • 2. Spis rzeczy XMPP i ejabberd XMPP Erlang ejabberd XMPP a HTTP BOSH Implementacje Optymalizacja Integracja Uwierzytelnianie Listy znajomych Informowanie serwera XMPP o zmianach
  • 3. Spis rzeczy XMPP i ejabberd XMPP Erlang ejabberd XMPP a HTTP BOSH Implementacje Optymalizacja Integracja Uwierzytelnianie Listy znajomych Informowanie serwera XMPP o zmianach
  • 4. XMPP Extensible Messaging and Presence Protocol, zastosowania: komunikatory, publish/subscribe, rozmowy audio/wideo, gry online.
  • 5. Dlaczego XMPP? Zalety XMPP: mnogość rozszerzeń, prostota, rozszerzalność, federacje, dużo oprogramowania. Wady XMPP: mnogość rozszerzeń, XML, a właściwie to nawet nie XML, a „prawie” XML.
  • 6. Dlaczego XMPP? Zalety XMPP: mnogość rozszerzeń, prostota, rozszerzalność, federacje, dużo oprogramowania. Wady XMPP: mnogość rozszerzeń, XML, a właściwie to nawet nie XML, a „prawie” XML.
  • 7. Dlaczego XMPP? Zalety XMPP: mnogość rozszerzeń, prostota, rozszerzalność, federacje, dużo oprogramowania. Wady XMPP: mnogość rozszerzeń, XML, a właściwie to nawet nie XML, a „prawie” XML.
  • 8. Erlang Erlang - funkcyjny język programowania opracowany przez firmę Ericsson. Cechy: funkcyjny, otwarty kod źródłowy, wymiana kodu w locie, równoległość oparta o wymianę komunikatów, rozproszony.
  • 9. Erlang Erlang - funkcyjny język programowania opracowany przez firmę Ericsson. Cechy: funkcyjny, otwarty kod źródłowy, wymiana kodu w locie, równoległość oparta o wymianę komunikatów, rozproszony.
  • 10. ejabberd Cechy: napisany w Erlangu, dobra zgodność ze standardem XMPP oraz wieloma rozszerzeniami, obsługa wielu domen, wbudowana obsługa HTTP.
  • 11. Ale dlaczego ejabberd? wydajność, skalowalność, modularność, istnieją już wdrożenia na milion użytkowników online. Problemy: nie zadziała „z pudełka”, fala użytkowników, HTTP, integracja z portalem.
  • 12. Ale dlaczego ejabberd? wydajność, skalowalność, modularność, istnieją już wdrożenia na milion użytkowników online. Problemy: nie zadziała „z pudełka”, fala użytkowników, HTTP, integracja z portalem.
  • 13. Spis rzeczy XMPP i ejabberd XMPP Erlang ejabberd XMPP a HTTP BOSH Implementacje Optymalizacja Integracja Uwierzytelnianie Listy znajomych Informowanie serwera XMPP o zmianach
  • 14. BOSH Bidirectional-streams Over Synchronous HTTP Mechanizm dwukierunkowej komunikacji przez HTTP, podobny do protokołu Bayeux (Comet). Przystosowany do przesyłania strumieni XML. Działanie: 1. Klient wysyła żądanie HTTP, serwer „zawiesza” połączenie. 2. Jeśli serwer ma coś do wysłania, to przesyła to nawiązanym połączeniem, klient natychmiast nawiązuje kolejne połączenie. 3. Jeśli klient ma coś do wysłania, nawiązuje drugie połączenie, w którym przesyła dane, serwer kończy poprzednie połączenie, a nowe „zawiesza”.
  • 15. BOSH Bidirectional-streams Over Synchronous HTTP Mechanizm dwukierunkowej komunikacji przez HTTP, podobny do protokołu Bayeux (Comet). Przystosowany do przesyłania strumieni XML. Działanie: 1. Klient wysyła żądanie HTTP, serwer „zawiesza” połączenie. 2. Jeśli serwer ma coś do wysłania, to przesyła to nawiązanym połączeniem, klient natychmiast nawiązuje kolejne połączenie. 3. Jeśli klient ma coś do wysłania, nawiązuje drugie połączenie, w którym przesyła dane, serwer kończy poprzednie połączenie, a nowe „zawiesza”.
  • 16.
  • 17. Implementacje W serwerach: ejabberd, Tigase, Openfire. Zewnętrzne: Punjab, Araneo, JabberHTTPBind, rhb, implementacja NK. Uwaga BOSH w aktualnym ejabberd (2.0.5) posiada poważny błąd, który czyni go bezużytecznym przy większych obciążeniach.
  • 18. Implementacje W serwerach: ejabberd, Tigase, Openfire. Zewnętrzne: Punjab, Araneo, JabberHTTPBind, rhb, implementacja NK. Uwaga BOSH w aktualnym ejabberd (2.0.5) posiada poważny błąd, który czyni go bezużytecznym przy większych obciążeniach.
  • 19. Implementacje W serwerach: ejabberd, Tigase, Openfire. Zewnętrzne: Punjab, Araneo, JabberHTTPBind, rhb, implementacja NK. Uwaga BOSH w aktualnym ejabberd (2.0.5) posiada poważny błąd, który czyni go bezużytecznym przy większych obciążeniach.
  • 20. Implementacje W serwerach: ejabberd, Tigase, Openfire. Zewnętrzne: Punjab, Araneo, JabberHTTPBind, rhb, implementacja NK. Uwaga BOSH w aktualnym ejabberd (2.0.5) posiada poważny błąd, który czyni go bezużytecznym przy większych obciążeniach.
  • 21. Optymalizacja keep-alive, kompresja, rezygnacja z XML - można wykorzystać np. JSON, rezygnacja z HTTP - zamiast tego połączenia TCP przez flasha. BOSH w nadchodzącym ejabberd 2.1 jest sporo wydajniejszy i lepiej napisany.
  • 22. Optymalizacja keep-alive, kompresja, rezygnacja z XML - można wykorzystać np. JSON, rezygnacja z HTTP - zamiast tego połączenia TCP przez flasha. BOSH w nadchodzącym ejabberd 2.1 jest sporo wydajniejszy i lepiej napisany.
  • 23. Optymalizacja keep-alive, kompresja, rezygnacja z XML - można wykorzystać np. JSON, rezygnacja z HTTP - zamiast tego połączenia TCP przez flasha. BOSH w nadchodzącym ejabberd 2.1 jest sporo wydajniejszy i lepiej napisany.
  • 24. Optymalizacja keep-alive, kompresja, rezygnacja z XML - można wykorzystać np. JSON, rezygnacja z HTTP - zamiast tego połączenia TCP przez flasha. BOSH w nadchodzącym ejabberd 2.1 jest sporo wydajniejszy i lepiej napisany.
  • 25. Spis rzeczy XMPP i ejabberd XMPP Erlang ejabberd XMPP a HTTP BOSH Implementacje Optymalizacja Integracja Uwierzytelnianie Listy znajomych Informowanie serwera XMPP o zmianach
  • 26. Podwójne uwierzytelnianie Po zalogowaniu w portalu, użytkownik, w najprostszym wypadku, musi zalogować się ponownie przez XMPP. Rozwiązania: integracja sesji XMPP z sesjami portalu, tworzenie sesji BOSH/XMPP przez portal, wydawanie „biletów”, które serwer XMPP może łatwo sprawdzić.
  • 27. Podwójne uwierzytelnianie Po zalogowaniu w portalu, użytkownik, w najprostszym wypadku, musi zalogować się ponownie przez XMPP. Rozwiązania: integracja sesji XMPP z sesjami portalu, tworzenie sesji BOSH/XMPP przez portal, wydawanie „biletów”, które serwer XMPP może łatwo sprawdzić.
  • 28. Listy znajomych ejabberd musi pobrać listy znajomych użytkownika, aby wiedzieć jak przesyłać informacje o statusie użytkownika. Do opracowania: API do pobierania list znajomych (o ile takiego jeszcze nie ma), sposób na informowanie ejabberd o zmianach.
  • 29. Listy znajomych ejabberd musi pobrać listy znajomych użytkownika, aby wiedzieć jak przesyłać informacje o statusie użytkownika. Do opracowania: API do pobierania list znajomych (o ile takiego jeszcze nie ma), sposób na informowanie ejabberd o zmianach.
  • 30. Listy znajomych - problemy Czy będzie można zmieniać listy z poziomu XMPP? Co ze znajomymi spoza portalu (federacje)? Uwaga Oryginalny moduł ustawień prywatność pobiera listę znajomych dla każdej wiadomości.
  • 31. Listy znajomych - problemy Czy będzie można zmieniać listy z poziomu XMPP? Co ze znajomymi spoza portalu (federacje)? Uwaga Oryginalny moduł ustawień prywatność pobiera listę znajomych dla każdej wiadomości.
  • 32. Zmiany O czym trzeba informować ejabberd: zmiany w listach znajomych, usunięcie/zablokowanie konta, zmiana hasła/nazwy użytkownika, inne w zależności od potrzeb (z czasem będzie tego coraz więcej). Uwaga ejabberd posiada mechanizm do informowania o zmianach w listach znajomych, ale nie działa on poprawnie.
  • 33. Zmiany O czym trzeba informować ejabberd: zmiany w listach znajomych, usunięcie/zablokowanie konta, zmiana hasła/nazwy użytkownika, inne w zależności od potrzeb (z czasem będzie tego coraz więcej). Uwaga ejabberd posiada mechanizm do informowania o zmianach w listach znajomych, ale nie działa on poprawnie.
  • 34. Zmiany O czym trzeba informować ejabberd: zmiany w listach znajomych, usunięcie/zablokowanie konta, zmiana hasła/nazwy użytkownika, inne w zależności od potrzeb (z czasem będzie tego coraz więcej). Uwaga ejabberd posiada mechanizm do informowania o zmianach w listach znajomych, ale nie działa on poprawnie.
  • 35. Rozszerzanie ejabberd XMPP Ad-Hoc Commands możliwość zdefiniowania dowolnych poleceń o ustalonych nazwach, przesyłanie parametrów oraz odbieranie wyników, kontrola dostępu, formularze dla graficznych klientów XMPP. ejabberdctl podobne możliwości jak Ad-Hoc, wywoływane z wiersza poleceń przez administratora.
  • 36. Rozszerzanie ejabberd XMPP Ad-Hoc Commands możliwość zdefiniowania dowolnych poleceń o ustalonych nazwach, przesyłanie parametrów oraz odbieranie wyników, kontrola dostępu, formularze dla graficznych klientów XMPP. ejabberdctl podobne możliwości jak Ad-Hoc, wywoływane z wiersza poleceń przez administratora.