XMPP client installation:
XMPP
history
alternative chat tool
prosody
server software
federation
no centralisation, it is possible to make xmpp accounts on self hosting servers that can then talk to each other. there are also companies which can host accounts on their servers
---
Install XMPP client
Find and get a client of your taste (Suggestions: Android&Conversations (free in fdroid), Linux&Gajim, Mac&Gajim, iOS&ChatSecure, Windows&Gajim, linux&mac, http://www.profanity.im/, chromeOS :https://github.com/dodo/chrome-xmpp, Mac: https://pidgin.im/ ) https://homebrewserver.club//picking-modern-xmpp-clients.html
To install f-droid: www.f-droid.org , you can download from the phone
XMPP acount on complex.local
We will register an account on the XMPP server at complex.local.
This can be done from your client.
Register an account on complex.local.
For some reason, registering only works with the ip-address
Example: username@192.168.73.188 (with gajim if it does not work try without @192.168.73.188)
Server: 192.168.73.188
Username: yourname
MUC's
Join the general public MUC (MUC=multi user chat), which is called "welcome". Select "Join group chat" and join welcome@muc.complex.local
Room: welcome
Server: muc.complex.local
There is another room called 'updates':
Room: updates
Server: muc.complex.local
To make a new muc:
roomname@muc.complex.local
bots
At the moment there is one bot along us.
It's the printing-bot, that listens in the muc updates@muc.complex.local
Any message send to this groupchat will be printed by the bot.
The fetcher (one of the special tasks) will make sure that the printed messages will be put on the walls of the cafe.
The code of the bot is on complex.local/xmpp-bots/printing-bot.
Reading suggestion
If in need for more detailed directions, have a look at the homebrew server club guide:
https://homebrewserver.club/have-you-considered-the-alternative.html
https://homebrewserver.club/beginners-guide-to-xmpp-speak.html
---
xmpp notes:
xmpp
* modules http://prosody.im/doc/modules + https://modules.prosody.im/
* extentions http://prosody.im/doc/xeplist
* For logging: http://modules.prosody.im/mod_message_logging.html and or http://modules.prosody.im/mod_muc_log.html
* example xmpp bot: https://git.bleu255.com/rms/log.html
* for python use sleekxmpp: https://github.com/fritzy/SleekXMPP
Bots session
* enable mod_muc_log:
https://modules.prosody.im/mod_muc_log.html
$ cd /etc/prosody
$ sudo nano prosody.cfg.lua
add "muc_log" to .........
$ sudo prosodyctl restart
* use muc_log_http:
https://modules.prosody.im/mod_muc_log_http.html
$ cd /etc/prosody
$ sudo nano prosody.cfg.lua
add "muc_log_http";
>>> didn't work for us
* read the logs:
$ cd /var/ ????????
welcome bot
https://gitlab.com/relearn/relearn2017 (soon)
$ pip install argparse logging sleekxmpp pyasn1 pyasn1_modules
* step 1: make a bot account (bot@domain.org)
* step 2: invite the bot to the muc
* step 3: run the bot from your terminal
$ python relearn.py -j bot@domain.org -p entrepot -m example@muc.domain.org
-j = jabber id
-p = password
-m = muc
Possible role of the bots
* interventionists on top of the etherpad
* For example: can a bot be a collector-tool? Where you could send interesting parts of the pads to? Or pictures? People can start a muc for a specific collection, and start adding items to it. The bot takes them from the pads (or from a file), following the padname + line number. It copies the content and places it into a .md file. (This file can be pandoced to html/pdf/...etc!)
sleekxmpp
For the bots we use the library SleepXMPP.
* documentation: https://github.com/fritzy/SleekXMPP/wiki
* website: http://sleekxmpp.readthedocs.io/en/latest/
* list of events (triggers): http://sleekxmpp.readthedocs.io/en/latest/event_index.html
* introduction to muc bots: http://sleekxmpp.readthedocs.io/en/latest/getting_started/muc.html
XMPP Vocabulary
* stanza: "In XMPP, data is sent over a pair of XML streams. The root element for both of these streams is , and any direct children of this element are referred to as stanzas. A stanza is just a chunk or fragment of XML sent during any XMPP communications. There are three main types of stanzas:
* (See Stanzas: Message)
* (See Stanzas: Presence)
* (See Stanzas: Iq)"
From: https://github.com/fritzy/SleekXMPP/wiki/Stanza-Objects
Questions
* how is "self" used in python classes? https://docs.python.org/3/tutorial/classes.html
* How are the users bot & rms related to eachother?