Il software è come il sesso, è meglio quando è libero. (Software is like sex, it's better when it's free).
Un servizio di Instant Messaging per la nostra Small Business ? Già proprio così. L'idea mi è balenata quando, spostandomi di azienda in azienda, ho notato che la diffusione di Skype assume le dimensioni di una piovra: pazienza servisse per telefonare, ma nel 90% dei casi ho visto solo chat ! E usare la chat di Skype per lasciare messaggi a chi stà nella scrivania accanto mi sembra una boiata immensa: oltre allo spreco di banda (skype si connette a internet, magari siete nodo/centralino di un centinaio di utenti e non lo sapete), si pone anche il problema che senza connettività a internet il "servizio" si interrompe. E allora, signori e signore (mi sà che le signore sono poche ...), risolviamo il problema alla radice, un bel server IM privato realizzato per l'occasione grazie al signor Jabber, libero e spensierato.
Cercando la soluzione più adatta mi son scontrato con una marea di sigle/implementazioni per realizzare un servizio di Instant Messaging: AIM, ICQ, IRC, MSN, Gadu-Gadu, Yahoo!, Sametime, Skype, Jabber, ecc. e sicuramente ne ho dimenticato qualcuno. Per la peppa, cosa scegliere ?
Per scremare allora fissiamo i nostri obiettivi:
voglio un sistema di messaggistica senza dover scendere a compromessi, senza dover subire la pubblicità di chissà quale "multinazionale della messaggistica", senza dover dare informazioni a proposito della propria vita, senza dover essere maggiorenni, o americani inglesi francesi russi, senza dover dare un contatto mail sicuramente spammato, senza una marea di n00b che si divertono con i loro nick colorati a inviare le loro catene di ogni santo gli venga in mente, privato e integrato con il sistema di autorizzazione utenti aziendale basato su PAM e LDAP e che supporti i messaggi a utenti off-line
Con queste richieste ho già spazzato via praticamente tutti i pretendenti, con l'eccezzione di uno: JABBER.
Il software basato su Jabber/XMPP è libero e standarlizzato, chiunque può "tirar su" un server. E'diffuso su migliaia di macchine disseminate su internet e usato quotidianamente da milioni di persone. Esistono server pubblici e privati che interagiscono tra loro, e in teoria basta un unico utente su di un qualsiasi server e immediatamente posso comunicare con qualsiasi altro utente ovunque sia registrato. In più, caratteristica unica, attraverso i gateway posso anche comunicare con utenti di altre reti tipo ICQ e MSN.
Ma a noi tutto questo interessa relativamente, a noi interessa un server privato, con registrazioni chiuse che accetti connessioni dalla nostra rete private (ed eventualmente nostri utenti mobili) e sfrutti gli utenti/password esistenti per l'autenticazione. Ricordate il Santo Graal del sistemista ? Single-Signon a tutti i servizi aziendali, cosa che Jabber ci permette di fare.
Bando alle ciance ed iniziamo.
Purtroppo non tutto è disponibile per Archlinux, dovremmo "sporcare" la nostra installazione con compilazioni manuali. Certo, potrei farne un PKGBUILD di quello che manca, ma per ora và bene così, se qualcuno si offre è il benvenuto.
Esistono diverse implementazioni per realizzare la parte "server" di Jabber io ho scelto la più sempliciotta che è anche la più "storica" essendo un progetto iniziato e rilasciato da Jeremie Miller (il creatore di jabber) nella prima versione nel lontano 2000. Ancora oggi (giunta alla verione 2) è più che adeguata e quindi non ho perso tempo.
sudo pacman -S jabberd
Potrei installare jabberd anche senza openSSL o libidn, tuttavia facciamo una installazione che comprende anche la crittografia dei messaggi, quindi installiamoli. MySQL verrà usato come Data Storage da Jabberd in alternativa a sqlite, PostgreSQL o BerkleyDB.
Potrei essere a posto così, ma siccome voglio implementare anche la conference tra più utenti (i channels di IRC) ho bisogno di un modulo aggiuntivo di cui non esiste il PKGBUILD. Allora preleviamo il sorgente, lo compiliamo e lo installiamo a manina.
Il componente in aggiunta è mu-conference che stà per Multi User Conference che verrà integrato al nostro server Jabber.
Mettiamoci in una directory vuota e preleviamo il sorgente:
wget http://download.gna.org/mu-conference/mu-conference_0.7.tar.gz
tar zxvf ./mu-conference_0.7.tar.gz
CFLAGS:=$(CFLAGS) -O2 -Wall -I../../lib -I../include `pkg-config --cflags glib-2.0` -D_JCOMP -D_REENTRANT -DLIBIDN -DHAVE_MYSQL
sudo pacman -S pkgconfig
make
cp ./src/mu-conference /usr/bin
cp ./muc-default.xml /etc/jabberd/muc.xml
Bene, per ora ci fermiamo qui. Nel prossimo post procederemo con la configurazione.
Recent comments
9 hours 6 min ago
6 weeks 1 day ago
9 weeks 6 days ago
11 weeks 3 hours ago
12 weeks 6 days ago
14 weeks 3 days ago
14 weeks 3 days ago
14 weeks 3 days ago
14 weeks 3 days ago
14 weeks 3 days ago