Un introduzione al “team speaking” o “group communicating” in ambiente Linux
Quattro chiacchere con Linux, Copyright (C) 2005 Ivo Carrano.
Questo documento e rilasciato sotto licenza Creative Commons Attribuzione - Non Commerciale - Condividi allo stesso modo, versione 2.0 o, a vostra scelta, versioni successive.
Questo documento viene distribuito così com'è e nella speranza sia di utilità, ma SENZA ALCUNA GARANZIA ne implicita ne esplicita di alcun tipo.
Pur avendolo scritto con la massima cura, questo documento potrebbe contenere inaccuratezze tecniche o errori tipografici. I rischi conseguenti all'uso delle informazioni disponibili sono a carico del lettore e non mi ritengo in alcun modo responsabile per qualsiasi danno parziale o totale, diretto o indiretto legato all'uso del presente documento e delle informazioni in esso contenute.
Questo documento può contenere informazioni, reperite direttamente “on line”, sulla proprietà e il copyright di prodotti realizzati da altri soggetti.
Pur avendo cerato di riportare l'essenziale con scrupolo, NULLA di quanto qui affermato ha valore legale in quanto solo i rispettivi titolari dei diritti hanno la facoltà di concederne l'uso a terzi secondo le loro condizioni. Invito pertanto TUTTI coloro che vogliano fare uso di uno o più prodotti menzionati a informarsi direttamente delle relative condizioni legali d'uso.
Eventuali commenti sui prodotti menzionati sono da intendersi come una semplice opinione personale dell'autore che, in piena autonomia e senza pregiudizio, esprime le proprie considerazioni sulla base dell'esperienza personale posseduta all'atto della stesura di questo documento. Se fossero riscontrate inesattezze o anomalie sarò ben lieto di porvi rimedio correggendole.
Domande, commenti, suggerimenti e correzioni sono i benvenuti e possono essere inviati direttamente all'autore all'indirizzo realgar at email.it.
Tutti i prodotti e i nomi di società citati in questo documento sono marchi o marchi registrati dalle rispettive società.
Quando si parla di “team speaking” o “group communicating” si parla di applicazioni del VoIP. In altre parole si può dire che essi sono un modo di fare VoIP.
Poiché parlare di VoIP non implica l'uso di uno specifico protocollo di comunicazione, risulta subito chiaro che ci si trova nelle stesse condizioni di quando si parla di Instant Messaging o Peer-to-Peer: una babele di programmi, protocolli, network, annessi e connessi tale per cui orientarsi richiede del tempo e della fatica ma, soprattutto, ci si può scordare qualunque tipo ti interoperabilità.
In altre parole, usare oggi la tecnologia VoIP vuol dire scegliere un programma e sapere che si comunicherà solo con chi usa lo stesso programma. Spesso questi software usano protocolli di codifica e trasmissione dell'audio completamente chiusi e quindi, a meno di un lungo e laborioso reverse engineering sugli stessi (che ricordo è illegale in alcuni paesi e, in parte, anche in Italia), è quasi impossibile pensare di poter avere client multiprotocollo o comunque differenti da quelli “ufficiali”.
Con questo scritto, cercherò di esporre le operazioni necessarie per usare quei programmi di comunicazione vocale che ho avuto modo di installare e testare. Non mi dilungherò sugli aspetti generali della struttura e del funzionamento delle varie distribuzioni di Linux né mi soffermerò su aspetti specifici di esse in quanto la documentazione già disponibile è generalmente adeguata.
Tra i protocolli VoIP esistenti ve ne sono alcuni che per diffusione/standardizzazione sono di sicuro interesse.
Tra questi si possono distinguere due gruppi principali: da un lato ci sono H.323, SIP, IAX, Skinny, MiNET e Skype; dall'altro Ventrilo, TeamSpeak e GameComm.
Mentre dei primi è citato il nome del protocollo usato per le comunicazioni (indipendentemente dai programmi che li potrebbero implementare), dei secondi è citato il nome dei programmi stesso. La ragione è semplice: al primo gruppo appartengono dei protocolli per gestire la telefonia su reti a commutazione di pacchetto (tra cui le normali reti IP come Internet), al secondo dei protocolli, a volte semplificati rispetto ai primi, che hanno come unico scopo quello di mettere in comunicazione vocale contemporanea degli utenti presenti su di un server e, tuttalpiù, raggrupparli in “stanze” separate e non intercomunicanti.
I protocolli ti telefonia devono occuparsi di gestire aspetti che normalmente non sono presi in considerazione dai protocolli usati negli altri sistemi di comunicazione vocale tipo comunicazione audio e video, gestione dei “numeri di telefono”, possibilità di scalare su dimensione planetaria, ecc.
I protocolli del secondo gruppo possono fare delle assunzioni che ne semplificano notevolmente la struttura ma che, d'altro canto, ne limitano l'impiego ad ambiti ben precisi.
Tanto per dare un idea, mentre TeamSpeak server è un programmino che non occupa neanche 2MB, la suite sviluppata dal progetto OpenH323 supera i 12MB.
I protocolli H.323 (ITU-T), SIP (IETF) e IAX (Asterisk) sono protocolli standard e aperti al contrario di Skinny, MiNET e Skype; ad esempio NetMeeting e GnomeMeeting usano H.323 e pertanto sono completamente interoperabili ma, anch'essi, hanno dimensioni e complessità molto superiori ai client TeamSpek, Ventrilo o simili.
Home page: goteamspeak.com
TeamSpeak è un programma per comunicazione vocale attraverso una rete IP o, tecnicamente, è un'applicazione di VoIP. Viene distribuito con una licenza Freeware che vuol dire che ne viene concesso l'uso in forma gratuita per tutti gli usi non commerciali sia del client che del server.
Tra le caratteristiche di pregio di questo programma vi sono la leggerezza e la disponibilità per Microsoft Windows e Linux.
Nato come programma di supporto per i giocatori on line, si è evoluto e perfezionato nel tempo e oggi dispone di strumenti come la rubrica, gli hotkeys (anche detti scorciatoie da tastiera) e la normalizzazione della voce; tra le altre cose, è da notare che, come codec audio, può usare anche speex, le cui qualità sono fuori discussione.
Il software può essere facilmente scaricato dal sito del produttore attraverso un link diretto presente in home page.
Non mi dilungherò sull'uso del client in quanto ritengo che questa guida redatta da Ettore Giulini, pubblicata sul sito siforge.org, sia completa ed efficace allo scopo.
Nota Bene: Le procedure seguenti fanno riferimento alla mia configurazione di sistema e riportano le mie scelte. Ricordatevi di adattate i percorsi e gli altri dettagli alle vostre esigenze.
Nota Bene 2: In coda al mio $PATH è presente la directory ”~/bin”.
La versione da me provata (2.0.32.60) mi ha dato un problema nella procedura di installazione (per i curiosi mi ha restituito l'errore “relocation error: ./setup.data/installer/installer: undefined symbol: initPAnsiStrings”), pertanto sono dovuto ricorrere alla procedura manuale.
Data la semplicità delle operazioni da svolgere, la riporto qui integralmente e la consiglio a chi vuole “far da sé” e tenere sotto controllo il proprio sistema fin nei dettagli.
Le operazioni da seguire sono:
tar xjf ts2_client_rc2_2032.tar.bz2
mv ts2_client_rc2_2032/setup.data/image/* ~/TeamSpeak2
"%installdir%" => "/home/ivo/TeamSpeak2"
ln -s ~/TeamSpeak2/TeamSpeak ~/bin/tsc2
Il programma dovrebbe funzionare senza ulteriori operazioni lanciando al prompt:
tsc2
TeamSpeak supporta direttamente solo OSS e, pertanto, non è in grado di condividere l'emulazione OSS di alsa prendendo pieno possesso della scheda audio e creando un conflitto di condivisione della risorsa con alcuni giochi (ad esempio TC:E) che si comportano nello stesso modo.
La soluzione consiste nel redirigere l'audio dei giochi, per i quali serve solo un uscita (canale monodirezionale) su di un device di solo playback nel modo seguente:
echo "et.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
echo "et.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss
N.B. Dovete indicare ad alsa in nome dell'eseguibile effettivo, non eventuali script di lancio o altro (ad esempio nel caso di TC:E è un mod per ET e quindi l'eseguibile effettivo è et.x86).
Per avere il nome dell'eseguibile potete, dopo aver lanciato il gioco, digitare in una console
ps -u
che vi restituirà l'elenco di tutti i processi a vostro nome. Non dovrebbe essere difficile individuare il nome del programma o del gioco.
Nel caso usiate un demone audio come arts la soluzione (a meno che il gioco/programma non lo supporti nativamente) è, dal punto di vista logico, la stessa: si rimappa il device usato dal programma/gioco a arts attraverso il comando
artsdsp -m nome_programma
Per rendere “permanenti” queste modifiche esse andranno inserirle in uno script da eseguire ad ogni avvio.
Leggete la documentazione relativa alla vostra distribuzione per saper dove e come fare.
Il server TeamSpeak non richiede particolari risorse, secondo il produttore è sufficiente un processore di classe Pentium (minimo 100 MHz se si usa Linux, 166MHz se si usa Windows) o successivi e con almeno 32MB di ram.
Inoltre, non usando una qualità audio molto elevata, si può arrivare anche a 10-12 utenti su di una normale ADSL.
Non necessitando di porte privilegiate, il server può girare anche con i normali privilegi utente.
Per disporre di un server su cui ospitare gli amici le operazioni da seguire sono:
tar xjf ts2_server_rc2_20201.tar.bz2
mv tss2_rc2 tss2
ln -s ~/TeamSpeakServer2/teamspeak2-server_startscript ~/bin/tss2
tss2 start
tss2 stop
tss2 passwords
tss2 start
Nota: Se si vuole configurare un server dedicato può essere conveniente creare un utente apposito con cui far girare il programma e inserire, tra gli script di avvio del sistema, uno per avviare TeamSpeak Server.
Per chi dispone di un firewall di protezione, l'unica porta da aprire per accettare connessioni su proprio server è la 8767 del protocollo UDP.
Per l'uso del client non è necessario effettuare altre modifiche oltre quelle fatte per lasciar uscire le altre applicazioni.
N.B. NON consiglio di aprire all'esterno la porta 14534 per evitare che qualche malintenzionato riesca a entrare nella parte di configurazione del programma e crei dei problemi.
Chiacchierare via rete è non solo fattibile ma anche molto divertente. L'unico vero ostacolo è, come già accennato nell'introduzione, la babele di protocolli/programmi che stanno proliferando in questo periodo. Fintantoché non si creerà una situazione di maggiore consolidamento della tecnologia, lo scotto da pagare per usufruirne sarà rappresentato dal doversi orientare in questo caos.
Per ora mi fermo qui. Appena avrò a disposizione altro materiale da pubblicare tornerò a metterci mano.