Ejabberd

h/m wiki sitesinden

Ejabberd alternatifleri arasında gelişmiş bir özgür XMPP ve MQTT sunucusudur.
Aşağıda paylaşılan yapılandırma ve ayarlar, kendi alan adınız ve Statik IP'niz olduğu varsayımıyla düzenlenmiştir.

Plinth'in uygulama yapılandırma sayfasında belirtildiği üzere, aşağıdaki portlar routerınızdan FBX'a önceden yönlendirilmiş olmalı.

Hizmet Adı Protokol WAN Portu FBX Portu
xmpp-client TCP 5222 5222
xmpp-server TCP 5269 5269

Yapılandırma

Ejabberd'ın yapılandırma dosyasına sudo nano /etc/ejabberd/ejabberd.yml ile ulaşabilirsiniz.

Dosya Paylaşımı

Freedombox (FBX) varsayılan yapılandırmasında, kullanıcılar (veya istemciler) arasında dosya paylaşımını gerçekleşmiyorsa, aşağıdaki adımları izleyebilirsiniz.

  • FBX güvenlik duvarınızda 5443 TCP portunu açın. Bu işlemi terminal üzerinden yapmak istemezseniz, FBX Cockpit uygulamasından Networking > Firewall > Edit Rules and Zones sekmelerinden 5443 TCP portunu ekleyebilirsiniz (hizmet adını xmpp-upload koyabilirsiniz). Ekleme sonrası güvenlik duvarınızı sudo systemctl restart firewalld ile yeniden başlatmayı unutmayın.
  • FBX'ınız bir routera bağlıysa, routerınızın 5443 portunu FBX’ınıza yönlendirin.
Hizmet Adı Protokol WAN Portu FBX Portu
xmpp-upload TCP 5443 5443
  • FBX’ınıza terminal üzerinden bağlanıp, aşağıdaki klasörü oluşturun ve sahipliğini ejabbard'a atayın.
sudo mkdir /var/www/upload
sudo chown -R ejabberd:ejabberd /var/www/upload
sudo chmod -R 775 /var/www/upload
  • FBX yaplandırma dosyanızda (ejabberd.yml) aşağıdaki değişiklikleri uygulayın
port: 5443  
ip: “::”  
module: ejabberd_http  
tls: true  
protocol_options: ‘TLS_OPTIONS’  
request_handlers:  
/api: mod_http_api  
/bosh: mod_bosh  
## /captcha: ejabberd_captcha  
/upload: mod_http_upload  
/ws: ejabberd_http_ws`  

ve

mod_http_api: {}
mod_http_upload:
put_url: https://@HOST@:5443/upload
docroot: /var/www/upload
custom_headers:
“Access-Control-Allow-Origin”: “https://@HOST@”
“Access-Control-Allow-Methods”: “GET,HEAD,PUT,OPTIONS”
“Access-Control-Allow-Headers”: “Content-Type”
mod_last: {}
  • sudo systemctl restart ejabberd ile hizmeti yeniden başlatın.

Not: Tedbir olması için DNS sağlayıcınızda “conference” subdomaini için ana alan adınıza işaret eden bir CNAME değeri de yaratabilirsiniz.

conference 10800 IN CNAME alan_adiniz.com

Video Konferans

FBX, görüntülü ve seli görüşmeler için Coturn uygulamasıyla gelir. Ancak bir yandan, ejabberd'ın da ayrı bir STUN ve TURN sunucusu bulunur. Coturn kullanmayı tercih etmeyip, ejabbard sunucusu üzerinden sesli ve görüntülü görüşme gerçekleştirmek isterseniz, aşağıdaki yapılandırmalara gidebilirsiniz.

Not: ejabberd STUN ve TURN sunucuları kullanılması istenirse, Coturn'ün sunucudan kaldırılması gerekir. Bu durumdan Matrix, Janus, JSXC gibi uygulamaların varsayılan yapılandırmaları etkilenir.

  • Yüklüyse, Coturn uygulamasını kaldırın.
  • Plinth ejabberd yapılandırma sayfasında Automatically manage audio/video call setup ayarı işaretliyse kaldırın
  • FBX güvenlik duvarında 3478, 3479, 5349, 5350, 49152-50175 portlarını (Cockpit uygulamasının Networking > Firewall > Edit Rules and Zones sekmesinden) açın. Bu portların bir kısmı Cockpit'te coturn-freedombox olarak önceden tanımlıdır, 3478 ve 3479 ayrıca eklenmeli.
  • Router'ınızdan aşağıdaki portları FBX’ınıza yönendirin
Hizmet Adı Protokol WAN Portu FBX Portu
ejabberd-stun UDP 3478 3478
ejabberd-stun TCP 5349 5349
  • Alan adı (DNS) sağlayıcınızda aşağıdaki SRV kayıtlarını ekleyin
_stun._tcp 300 IN SRV 0 0 3478 alan_adiniz.com.
_stun._udp 300 IN SRV 0 0 3478 alan_adiniz.com.
_stuns._tcp 300 IN SRV 0 0 5349 alan_adiniz.com.

_turn._tcp 300 IN SRV 0 0 3478 alan_adiniz.com.
_turn._udp 300 IN SRV 0 0 3478 alan_adiniz.com.
_turns._tcp 300 IN SRV 0 0 5349 alan_adiniz.com.

alan_adiniz.com. uygun şekilde değiştirilerek ve en sondaki nokta unutulmadan

  • Yapılandırma dosyasında (ejabberd.yml) aşağıdaki düzenlemeyi yapın
listen:
 ...
- port: 3478
  transport: udp
  module: ejabberd_stun
  use_turn: true
  turn_min_port: 49152
  turn_max_port: 50175
  turn_ip: statik_ipniz
  auth_type: user
- port: 5349
  transport: tcp
  module: ejabberd_stun
  use_turn: true
  tls: true
  turn_min_port: 49152
  turn_max_port: 50175
  ip: "::"
  turn_ip: statik_ipniz
...
modules:
  mod_disco: {}
...
  mod_stun_disco:
    credentials_lifetime: 1000d
    secret: <burada_bulunan_sifreyi_degistirmeyin>
    services:
    - host: alan_adiniz.com
      port: 3478
      type: stun
      transport: tcp
      restricted: false
    - host: alan_adiniz.com
      port: 3478
      type: stun
      transport: udp
      restricted: false
    - host: alan_adiniz.com
      port: 3478
      type: turn
      transport: tcp
      restricted: false
    - host: alan_adiniz.com
      port: 3478
      type: turn
      transport: udp
      restricted: false
...
  • Son olarak, sudo systemctl restart ejabberd ile hizmeti yeniden başlatın.

Çoklu İstemci Senkronizasyonu

XMPP hesabınızı aynı anda birçok istemci ile kullanabilirsiniz. Bu istemcilerin hepsinin aynı anda "online" olması mümkün olmayabilir. Yazışmalarınızın tüm istemcilerde senkron olmaması durumunda, ejabberd.yml yapılandırma dosyanızda mod_mam modülünü default: always değerine getirin.

mod_mam:
    db_type: mnesia
    default: always
    request_activates_archiving: false
    assume_mam_usage: false
    cache_size: 1000
    cache_life_time: 3600

sudo systemctl restart ejabberd ile hizmeti yeniden başlatın.

MQTT Yapılandırması

Bu kısım ayrıca derlenecektir.