Quattro chiacchiere con Linux

Un introduzione al “team speaking” o “group communicating” in ambiente Linux

Note fondamentali e questioni legali

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à.

Introduzione

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.

Alcuni protocolli VoIP

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.

I programmi

TeamSpeak

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”.

Il client

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:

  • Scompattare l'archivio tar.bz2 contenente il programma con:
  tar xjf ts2_client_rc2_2032.tar.bz2
  • Spostare il contenuto della directory setup.data/image dove si vuole installare TS2, nel mio caso:
  mv ts2_client_rc2_2032/setup.data/image/* ~/TeamSpeak2
  • Modificare il file di testo “TeamSpeak” sostituendo ”%installdir%” con il percorso assoluto in cui avete copiato i files, nel mio caso:
  "%installdir%" => "/home/ivo/TeamSpeak2"
  • Creare un link simbolico in una directory del path allo script di avvio modificato al punto 2, nel mio caso:
  ln -s ~/TeamSpeak2/TeamSpeak ~/bin/tsc2

Il programma dovrebbe funzionare senza ulteriori operazioni lanciando al prompt:

  tsc2
Il problema della condivisione dell'audio

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:

  • Assicurarsi di aver il device /dev/dsp che “funziona” regolarmente (provare separatamente TS e ET).
  • Eseguire il seguente comanto (per comunicare ad alsa di usare un device di solo playback con il programma in questione):
  echo "et.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
  • Eseguire il seguente comando (per disabilitare la cattura dell'audio in ingresso, cioè il microfono, da parte del programma in questione):
  echo "et.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss
  • Eventualmente ripetete i punti 2 e 3 sostituendo a “et.x86” per tutti i giochi o programmi voluti.

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

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:

  • Scompattare l'archivio tar.bz2 contenente il programma con:
  tar xjf ts2_server_rc2_20201.tar.bz2
  • Rinominare la directory tss2_rc2 come si vuole:
  mv tss2_rc2 tss2
  • Creare un link simbolico in una directory del path allo script di avvio/arresto teamspeak2-server_startscript presente nella directory del server:
  ln -s ~/TeamSpeakServer2/teamspeak2-server_startscript ~/bin/tss2
  • Avviare una prima volta il programma con:
  tss2 start
  • Fermare il server con:
  tss2 stop
  • Recuperare le password autogenerate per gli utenti SuperAdmin e Admin. Al primo avvio TSS genera una configurazione di default e i due utenti menzionati; per accedere al sistema e configurarlo è necessario sapere quali password vi ha assegnato di default (N.B.: cambiatele al primo login) con:
  tss2 passwords
  • Riavviare il server con:
  tss2 start
  • Collegarsi, con un browser web, all'indirizzo “localhost:14534” per configurare il server.

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.

Il firewall

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.

Conclusioni

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.


 



 
server_di_gioco/quattro_chiacchiere_con_linux.txt · Ultima modifica: 12/06/2008 22:48 da 127.0.0.1
 

 
Recent changes RSS feed Driven by DokuWiki

LA DOCUMENTAZIONE QUI PRESENTE NON HA GARANZIE IMPLICITE O ESPLICITE, USALA A TUO RISCHIO
LO STAFF DI PLAYLINUX E GLI AUTORI DEL MATERIALE QUI CONTENUTO NON SI ASSUMONO ALCUNA RESPONSABILITA'
DERIVANTE DALL'USO PROPRIO O IMPROPRIO DEL MATERIALE QUI CONTENUTO

TUTTI I MARCHI REGISTRATI APPARTENGONO AI RISPETTIVI PROPRIETARI

Playlinux 4 (layout e struttura) © 2006 Michele Comignano

CC
gli elementi grafici e strutturali di questo sito sono rilasciati sotto una Licenza Creative Commons
(Attribuzione - Non Commerciale - Non opere derivate 2.5)

i documenti presenti sul wiki (se non diversamente specificato) sono rilasciati sotto una Licenza Creative Commons
(Attribuzione - Non Commerciale - Condividi allo stesso modo 2.5)

cssxhtmlcrediti