Ejabberd

h/m wiki sitesinden
16.40, 29 Nisan 2023 tarihinde Admin (mesaj | katkılar) tarafından oluşturulmuş 200 numaralı sürüm

Ejabberd alternatifleri arasında gelişmiş bir özgür XMPP 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, Cotun uygulamasını kaldırın.
  • Plinth ejabberd yapılandırma sayfasında Automatically manage audio/video call setup ayarını işaretleyin.
  • 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önen:
Hizmet Adı Protokol WAN Portu FBX Portu
ejabberd-stun UDP 3478 3478
ejabberd-stun TCP 5349 5349
  • Alan adı (DNS) sağlayıcınızın web arayüzüne 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