===== 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