Transport GG i ejabberd
Od dłuższego czasu przymierzałem się do postawienia na naszym CzLUG-owym serwerze transportu Gadu-Gadu - jggtrans. Oczywiście w standardowym repozytorium paczki z jggtrans nie ma, więc jak na prawdziwego debianowca przystało (nie jestem developerem, niestety). Ciekawy opis instalacji i konfiguracji można znaleźć na stronie ejabberd. Poniżej przedstawiam sposób na transport po debianowemu:
1. Ściągamy i rozpakowujemy źródła jggtrans:
sor@valkiria:~/src$ wget http://jggtrans.jajcus.net/downloads/jggtrans-2.2.2.tar.gz && tar zxf jggtrans-2.2.2.tar.gz
2. Teraz musimy stworzyć pliku debianowe:
sor@valkiria:~/src/jggtrans-2.2.2$ dh_make -e majtajner@domena.pl -f ../jggtrans-2.2.2.tar.gz
3. Teraz wystarczy wszystko skonfigurować:
sor@valkiria:~/src/jggtrans-2.2.2$ ./configure --prefix=/usr
4. Musimy odpowiednio wyedytować pliki .debian/control oraz .debian/changelog. Dodatkowo musimy zmienić prefix w Makefile z prefix = /usr na prefix = ${DESTDIR}/usr
5. Pozostaje tylko zbudować i zainstalować paczkę deb:
sor@valkiria:~/src/jggtrans-2.2.2$ dpkg-buildpackage -rfakeroot -sgpg
root@valkiria:/home/users/sor/src# dpkg -i jggtrans_2.2.2-1_amd64.deb
6. Instalacja paczki nie stworzy nam wszystkich wymaganych katalogów i plików startowych, więc o to musimy zatroszczyć się sami:
root@valkiria:~# mkdir /var/lib/jabber /var/lib/jabber/gg.domena.pl && chown -R ejabberd:ejabberd /var/lib/jabber && chmod 750 /var/lib/jabber/gg.domena.pl
Skromny plik /etc/init.d/jggtrans:
#!/bin/sh
CONFIG_FILE=/etc/ejabberd/jggtrans.xml
USER=ejabberd
GROUP=ejabberd
PID_FILE=/var/lib/jabber/ggtrans.pid
case "$1" in
start)
echo -n "Starting Gadu-Gadu Jabber transport"
/usr/sbin/jggtrans -u $USER -g $GROUP $CONFIG_FILE
echo "."
;;
stop)
echo -n "Stopping Gadu-Gadu Jabber transport"
if [ -f $PID_FILE ]; then
kill `cat $PID_FILE`
fi
echo "."
;;
restart)
$0 stop
$0 start
;;
force-reload)
$0 restart
;;
*)
echo "Usage: $0 start|stop|restart|force-reload"
exit 1
;;
esac
7. Konfiguracja jest banalna, ściągamy plik i umieszczamy go w /etc/ejabberd. Musimy zmienić w nim odpowiednie dyrektywy, np:
<connect>
<ip>127.0.0.1</ip>
<port>5237</port>
<secret>scisletajnehaslo</secret>
</connect>
<service jid="gg.domena.pl"/>
<spool>/var/lib/jabber/spool/gg.domena.pl/</spool>
8. Teraz wystarczy dodać transport do ejabbera, w pliku /etc/ejabberd/ejabberd.cfg dopisujemy w sekcji listen:
% GG Transport
{5237, ejabberd_service, [{host, "gg.domena.pl",
[{password, "scisletajnehaslo"}]}]},
9. Na koniec wystarczy przeładować ejabbera oraz uruchomić jggtrans:
root@valkiria:~# /etc/init.d/ejabberd restart && /etc/init.d/jggtrans start
W pliku /var/log/messages powinniśmy obserwować co się dzieje, ja musiałem dodać jeszcze do jggtrans.xml dodatkowe serwery:
<servers>
<hub tls="no"/>
<server tls="no">217.17.45.143</server>
<server tls="no">217.17.45.144</server>
<server tls="no">217.17.45.145</server>
<server tls="no">217.17.45.146</server>
<server tls="no">217.17.45.147</server>
<server tls="no">217.17.41.92</server>
<server tls="no">217.17.41.93</server>
<server tls="no">217.17.41.85</server>
<server tls="no">217.17.41.83</server>
<server tls="no">217.17.41.88</server>
<server tls="no">217.17.41.84</server>
<server tls="no">217.17.41.86</server>
<server tls="no">217.17.41.87</server>
</servers>
10. W wyszukiwarce usług powinien pojawić się transport Gadu-Gadu: gg.domena.pl, po dodaniu go do naszego rostera powinniśmy mieć możliwość kontaktowania się z naszymi "niewiernymi" znajomymi.
±
Komentarze do wpisu "Transport GG i ejabberd":
1.
01 stycznia 2009, 13:48:04
SoR, świetny opis, jedyne co mogę dodać to użycie nowszych źródeł jggtrans
te ktorych użyłeś do Tworzenia paczki sa z 2006 roku, a duźo sie w libgadu zmieniło, więc jeśli komuś nie działa transport jak powinien, niech sprawdzi najnowszy snapshot:
http://jggtrans.jajcus.net/downloads/snapshots/
2.
02 lutego 2009, 09:53:06
Tia... zeby mi to jeszcze dzialalo.
Zrobilem dokladnie wedlug manuala - efekt - transport niby sie odpala, ale ejabberd sie wiesza (nawet interfejs webowy). Masz jakis pomysl moze, bo architektura (ppc), raczej w przypadku zrodel nie wchodzi w droge...
3.
10 września 2010, 11:23:12
Super opis bardzo mi pomógł. Transport i jabber działają. Jeden tylko problem. Gdy wszyscy są wylogowani po jakimś czasi (kilka kogdzin) transport GG rozłacza się. W logach widnieje

Connection rset by peer
Błąd: zerwanie połaczenia z serwerem Jabbera
Uwaga: read: 2 unknown
Ponowne uruchamianie za 60 sekund
i nic. ejabber działa w systemie a dopuki nie zrobię recznego restartu JGGTRANS nie ponawia poąłczenia
4.
10 września 2010, 11:25:46
Jakiej wersji jggtrans używasz? Też miałem podobny problem, w nowej wersji już nie występuje.
Dodaj komentarz: