===== Transports zu anderen Netzwerken einbinden ===== ==== Voraussetzung ==== * Dieses Howto setzt [[de:ejabberd_installation|ejabberd Installation]] und [[de:spectrum_2_installieren_und_einrichten|Spectrum 2 installieren und einrichten]] voraus. ==== Einleitung ==== Am Beispiel von Whatsapp erkläre ich, wie dieses Transport an deinen XMPP Server angebunden wird. Das Vorgehen lässt sich leicht auf andere Transports anwenden. ==== Einrichtung ==== Benötigte Pakete installieren: $ apt -y install libpurple0 libpurple-dev pkg-config cmake make gcc Go installieren: $ wget https://go.dev/dl/go1.19.3.linux-amd64.tar.gz $ tar -C /usr/local -xzf go1.19.3.linux-amd64.tar.gz $ export PATH=$PATH:/usr/local/go/bin Go Installation überprüfen: $ go version Ausgabe: go version go1.19.3 linux/amd64 purple-gowhatsapp installieren: $ mkdir /opt/transports $ cd /opt/transports $ wget -O purple-gowhatsapp-v1.8.0.tar.gz https://github.com/hoehermann/purple-gowhatsapp/archive/refs/tags/v1.8.0.tar.gz $ tar -xzf purple-gowhatsapp-v1.8.0.tar.gz $ cd purple-gowhatsapp-1.8.0 $ mkdir build $ cd build $ cmake .. $ cmake --build . $ make install/strip Spectrum 2 Konfiguration erstellen: $ jed /etc/spectrum2/transports/whatsapp. Die Datei sollte zum Schluss so aussehen: [service] # 1 if Spectrum should run in server mode. server_mode = 0 # The name of user/group Spectrum runs as. user=nobody group=nogroup # JID of Spectrum instance. jid = whatsapp. # Password used to connect the XMPP server in gateway mode. # In server mode, this option is ignored. password = # XMPP server to which Spectrum connects in gateway mode. # In server mode, this option is ignored. server = 127.0.0.1 # XMPP server port. port = 5360 # Interface on which Spectrum listens for backends. backend_host = 127.0.0.1 # Number of users per one legacy network backend. users_per_backend=10 # Full path to backend binary. backend=/usr/bin/spectrum2_libpurple_backend # Libpurple protocol-id for spectrum_libpurple_backend protocol=prpl-hehoe-whatsmeow #web_directory= #web_url= [identity] # Name of Spectrum instance in service discovery name=WhatsApp # Category of transport, default is "gateway category=gateway [logging] # log4cxx/log4j logging configuration file in ini format used for main spectrum2 instance. config = /etc/spectrum2/logging.cfg # log4cxx/log4j logging configuration file in ini format used for backends. backend_config = /etc/spectrum2/backend-logging.cfg [database] # Database backend type # "sqlite3", "mysql", "pqxx", or "none" without database backend type = sqlite3 # For SQLite3: Full path to database # For MySQL and PostgreSQL: name of database # default database = /var/lib/spectrum2/$jid/database.sql database = /var/lib/spectrum2/$jid/database.sql # Server. #server = localhost # Port. #port = 3306 # User. #user = # Paasword. #password = # Prefix used for tables #prefix = [registration] # Enable public registrations enable_public_registration=1 # Text to display upon user registration form username_label=Phone Number (e.g. 491717676750): instructions=Enter your Phone Number as shown (Yes, the missing + is correct!) [purple] #read-receipts=0 qrcode-size=256 plain-text-login=0 #spectrum-compatibility=1 bridge-compatibility=1 send-receipt=on-answer embed-max-file-size=16 autojoin-chats=1 Die Änderungen mit [STRG] + [x] und [STRG] + [s] speichern und den Editor mit [STRG] + [x] und [STRG] + [c] verlassen. ejabberd Konfiguration anpassen: $ su - ejabberd $ jed opt/ejabberd/conf/ejabberd.yml Suche nach: listen: und füge einen neuen Block ein: - port: 5360 module: ejabberd_service check_from: false hosts: "whatsapp.": password: "" access: all Suche nach: modules: und füge ein neues Modul ein: mod_privilege: roster: both: - allow: - server: - "whatsapp." message: outgoing: - allow: - server: - "whatsapp." presence: roster: - allow: - server: - "whatsapp." Die Änderungen mit [STRG] + [x] und [STRG] + [s] speichern und den Editor mit [STRG] + [x] und [STRG] + [c] verlassen. Damit erlaubst du unter anderem, dass deine Kontaktliste von Whatsapp mit deinem XMPP Server ausgetauscht werden kann, sodass deine Whatsapp Kontakte in deiner XMPP Kontaktliste auftauchen. Mache ejabberd die geänderte Konfiguration bekannt: $ ./opt/ejd/bin/ejabberdctl reload_config Starte dein Whatsapp Transport: $ exit $ spectrum2_manager whatsapp. start