  VoIP Howto
  Roberto Arcomano berto@fatamorgana.com
  v 1.0 - 12 November 2000

  Voice Over IP  un nuovo mezzo che permette di telefonare con Internet
  a costo quasi nullo. Come, con quali sistemi, quale standard viene
  utilizzato, viene illustrato in questo Howto. Il sito web
  http://www.fatamorgana.com/bertolinux <http://www.fatamor-
  gana.com/bertolinux> contiene la versione pi recente di questo docu-
  mento.
  ______________________________________________________________________

  Table of Contents





















































  1. Introduzione

     1.1 Introduzione
     1.2 Copyright

  2. Sfondo introduttivo

     2.1 Il passato
     2.2 Ieri
     2.3 Oggi
     2.4 Il futuro

  3. Visione generale del VoIP

     3.1 Cos' VoIP?
     3.2 Come funziona?
     3.3 Quali sono i vantaggi nell'usare VoIP invece delle linee PSTN?
     3.4 Allora perch non lo stiamo gi utilizzando tutti?

  4. Informazioni tecniche sul VoIP

     4.1 Vista d'insieme di una connessione VoIP
     4.2 Conversione analogica digitale
     4.3 Algoritmi di compressione
     4.4 RTP Protocollo di trasporto Real Time
     4.5 RSVP
     4.6 Qualit del servizio (QoS)
     4.7 H323: protocollo di segnalazione

  5. Requisiti

     5.1 Requisiti hardware
     5.2 Schede acceleratrici
     5.3 Schede gateway
     5.4 Requisiti software
     5.5 Software gateway
     5.6 Software gatekeeper
     5.7 Altro software

  6. Configurazione delle schede

     6.1 Quicknet PhoneJack
        6.1.1 Installazione del software
        6.1.2 Settaggi
     6.2 Quicknet LineJack

  7. Setup

     7.1 Una configurazione semplice: IP to IP
     7.2 Uso dei nomi
     7.3 Chiamata su Internet utilizzando un server WINS
     7.4 Un grosso problema: il masquering.
     7.5 Usare Linux
        7.5.1 Sintassi Ohphone
     7.6 Configurare un gatekeeper
     7.7 Configurare un gateway

  8. Considerazioni di banda

  9. Links utili



  ______________________________________________________________________


  11..  IInnttrroodduuzziioonnee

  11..11..  IInnttrroodduuzziioonnee

  Questo documento tratta di sistemi VoIP. I recenti avvenimenti come la
  diffusione di Internet a basso costo, la nuova integrazione di di
  processori dedicati per la compressione della voce (vedi DSP), hanno
  cambiato le esigenze del generico utente, permettendo alla tecnologia
  VoIP di diffondersi. Questo howto cerca di tracciare le linee guida
  dell'architettura VoIP.

  Sono ben accolti suggerimenti e critiche alla @fatamorganamia Email
  <mailto:berto@fatamorgana.com>


  11..22..  CCooppyyrriigghhtt

  Copyright (C) 2000,2001 Roberto Arcomano. This document is free; you
  can redistribute it and/or modify it under the terms of the GNU
  General Public License as published by the Free Software Foundation;
  either version 2 of the License, or (at your option) any later
  version.  This document is distributed in the hope that it will be
  useful, but

  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  General Public License for more details. You can get a copy of the GNU
  GPL here <http://www.gnu.org/copyleft/gpl.html>


  22..  SSffoonnddoo iinnttrroodduuttttiivvoo

  22..11..  IIll ppaassssaattoo

  20-30 anni fa Internet non esisteva. Le comunicazioni interattive si
  basavano sul telefono, ai costi delle linee PSTN.

  Lo scambio di dati era molto costoso (soprattutto per lunghe distanze)
  e nessuno immaginava al video interattivo (esisteva soltanto la
  televisione, che, com' noto, non  interattiva).

  22..22..  IIeerrii

  Pochi anni fa abbiamo assistito ad alcuni importanti fenomeni: PCs
  diffusi a larga scala, nuove tecnologie per comunicare come i telefoni
  cellulari e, finalmente, la grande rete: Internet; la gente ha
  iniziato ad utilizzare i primi servizi email, chat, ecc. e il business
  rinato con il web permettendo alle persone di acquistare prodotti via
  Internet con un " click" .

  22..33..  OOggggii

  Oggi assistiamo ad una vera e propria rivoluzione nel campo della
  comunicazione: tutti iniziano ad usare il PC con Internet nel lavoro e
  nel tempo libero per scambiare dati (come immagini, suoni, documenti)
  e, in alcuni casi, per parlare usando applicativi come Microsoft
  Netmeeting o Internet Phone. In particolare inizia a diffondersi
  un'idea comune che potrebbe rappresentare il futuro e che permette la
  comunicazione vocale in tempo reale: VoIP.

  22..44..  IIll ffuuttuurroo

  Non possiamo prevedere il futuro, ma lo immaginiamo con molti
  computers, Internet quasi ovunque ad alta velocit e persone che
  dialogano tra loro (audio and video) in tempo reale. Dobbiamo soltanto
  sapere quale mezzo si utilizzer: UMTS, VoIP (con l'estensione video) o
  altro ancora? Comunque sia bisogna accettare il fatto che Internet
  cresciuta in una maniera impressionante negli ultimi anni,  gratis (al
  meno dal punto di vista di " mezzo internazionale" ) e potrebbe essere
  il giusto mezzo di comunicazione del futuro.

  33..  VViissiioonnee ggeenneerraallee ddeell VVooIIPP

  33..11..  CCooss'' VVooIIPP??

  VoIP sta' per 'V'oice 'o'ver 'I'nternet 'P'rotocol. Come dice il
  termine VoIP prova a far passare la voce (prettamente quella umana)
  attraverso i pacchetti IP e in definitiva attraverso Internet. La
  tenologia VoIP pu avvalersi di schede hardware acceleratrici per
  raggiungere tale scopo ed  possibile il suo l'utilizzo in ambiente PC.

  33..22..  CCoommee ffuunnzziioonnaa??

  Molti anni fa  stato scoperto che per mandare un generico segnale
  lontano era possibile utilizzare il formato digitale: prima di
  mandarlo dobbiamo digitalizzarlo con un ADC (convertitore analogico-
  digitale), trasmetterlo, e trasformarlo di nuovo in formato analogicon
  con un DAC (convertitore digitale-analogico) per utilizzarlo.

  VoIP lavoro proprio in questo modo, digitalizzano la voce i pacchetti,
  mandandoli in rete e riconvertendoli in voce una volta giunti a
  destinazione.


  I vantaggi del formato digitale sono notevoli: possiamo comprimere i
  dati, instradarli (utilissimo su Internet), convertirli nuovamente in
  un formato pi consono al mezzo utilizzato e cos via; sappiamo anche
  che il segnale digitale  pi " resistente" ai disturbi rispetto a
  quello analogico (vedi GSM contro TACS).

  Le reti TCP/IP sono costituite di pacchetti IP contenenti
  un'intestazione (per controllare la comunicazione) e di una parte
  dati: VoIP utilizza questo paradigma per attraversare la rete ed
  arrivare a destinazione.


  Voce (sorgente)  - - ADC - - - - Internet - - - DAC  - - Voce (dest)



  33..33..  QQuuaallii ssoonnoo ii vvaannttaaggggii nneellll''uussaarree VVooIIPP iinnvveeccee ddeellllee lliinneeee PPSSTTNN??

  Quando usi la linea telefonica, si paga una tariffa dipendente dal
  tempo utilizzato ad un gestore di telefonia fissa (o mobile): pi tempo
  si sta' e pi si paga. Inoltre  possibile parlare soltanto con una
  persona alla volta.

  Al contrario, con la tecnologia VoIP puoi parlare tutto il tempo che
  vuoi (l'importante  che anche l'altra persona sia connessa ad Internet
  nello stesso istante), a che distanza vuoi (senza differenza di costo)
  e con la possibilit di parlare con pi persone contemporaneamente (la
  cosiddetta conferenza).

  Se non sei ancora convinto considera che, nello stesso istante, puoi
  scambiare dati con le stesse persone, mandando immagini, grafici e
  video e documenti.

  33..44..  AAlllloorraa ppeerrcchh nnoonn lloo ssttiiaammoo ggii uuttiilliizzzzaannddoo ttuuttttii??

  Sfortunatamente vi sono alcune problematiche di carattere tecnico
  nell'interazione tra l'architettura VoIP e Internet.Come si pu
  facilmente immaginare, la comunicazione vocale richiede una sorta di
  tempo reale per funzionare bene (non si pu parlare, aspettare alcuni
  secondi ed ascoltare la risposta in ritardo): questo, per va in
  contrasto con la filosofia architetturale di Internet che pu essere
  composta di molti routers (computers utilizzati per instradare
  pacchetti IP), circa 20-30 o pi e che pu portare ad un tempo medio di
  accesso (RTT, round trip time) molto elevato rendendo necessarie delle
  modifiche strutturali.

  Nei prossimi capitoli proveremo a capire come risolvere questo grosso
  problema. In generale, per dobbiamo essere consci del fatto che  molto
  difficile " garantire" una banda su Internet per le applicazioni
  multimediali.

  44..  IInnffoorrmmaazziioonnii tteeccnniicchhee ssuull VVooIIPP

  Ecco alcune importanti informazioni sulla tecnologia VoIP, necessarie
  per comprenderla bene.

  44..11..  VViissttaa dd''iinnssiieemmee ddii uunnaa ccoonnnneessssiioonnee VVooIIPP

  Per configurare una comunicazione VoIP abbiamo bisogno:


  1. Prima di tutto di un ADC per convertire la voce in segnali digitali
     (bits)

  2. I bit vanno compressi in un buon formato per la trasmissione: c'
     tutta una serie di protocolli atti a tale scopo che vedremo pi
     avanti.

  3. Adesso dobbiamo inserire i pacchetti voce in pacchetti di dati
     standard utilizzando un protocollo real-time (tipicamente RTP su
     UDP su IP)

  4. Abbiamo bisogno di un protocollo di segnalazione per chiamare gli
     utenti: ITU-T H323 fa proprio al caso nostro.

  5. In ricezione dobbiamo disassemblare i pacchetti, estrarre i dati,
     convertirli in segnali vocali analogici e mandarli alla scheda
     audio (o alla cornetta).

  6. Tutto questo deve essere effettuato in tempo reale poich non
     possiamo permetterci ritardi eccessivi durante il dialogo vocale!
     (vedi sezione QoS, Qualit del Servizio)



                          Architettura base

  Voce )) ADC - Algoritmo di compressione - Assembl. RTP in TCP/IP -----
                                                           ---->       |
                                                           <----       |
  Voce (( DAC - Algoritmo di decompress.  - Disass. RTP da TCP/IP  -----



  44..22..  CCoonnvveerrssiioonnee aannaallooggiiccaa ddiiggiittaallee

  Questo viene fatto dall'hardware, tipicamente da un ADC integrato.

  Oggi pressoch ogni scheda audio permette di convertire in 16 bit una
  banda di 22050 Hz (per il campionamente della quale abbiamo bisogno di
  44100 Hz per il teorema del campionamento) ottendendo una velocit di 2
  bytes * 44100 (campioni al secondo) = 88200 Bytes/s, 176.4 kBytes/s
  per i flussi dati stereo.

  Per il VoIP non abbiamo certamente bisogno di 22 kHz di banda (ne',
  tantomento, di 16 bit di risoluzione dei campioni): vediamo allora
  quali codifiche utilizzare.

  44..33..  AAllggoorriittmmii ddii ccoommpprreessssiioonnee

  Vediamo quali formati di digitalizzazione e compressione utilizziamo.


  PCM, Pulse Code Modulation, Standard ITU-T G.711




  +o  La banda della voce  4 kHz, quindi abbiamo campioni alla velocit di
     8 kHz (dal teorema del campionamento).

  +o  Rappresentiamo ogni campione con 8 bit (quindi con 256 valori
     possibili).

  +o  La velocit compressiva  8000 Hz *8 bit = 64 kbit/s, la tipica
     velocit di un canale telefonico digitale.

  +o  Nelle applicazioni reali si utilizzano le varianti mu-law (Nord
     America) e a-law (Europa) che codificano il segnale analogico su
     scala logaritmica sfruttando 12 o 13 bits invece di 8 bits (vedi
     Standard ITU-T G.711).


  ADPCM, Adaptive differential PCM, Standard ITU-T G.726



  Converte soltanto la differenza tra il pacchetto attuale e quello
  precedente richiedendo 32 kbps (vedi Standard ITU-T G.726).


  LD-CELP, Standard ITU-T G.728
  CS-ACELP, Standard ITU-T G.729 and G.729a
  MP-MLQ, Standard ITU-T G.723.1, 6.3kbps, Truespeech
  ACELP, Standard ITU-T G.723.1, 5.3kbps, Truespeech
  LPC-10, fino a 2.5 kbps!!



  Gli ultimi protocolli sono i pi significativi perch garantiscono un
  basso utilizzo di banda utilizzando metodi di codifica alla sorgente:
  inoltre le codifiche G.723.1 hanno un MOS molto elevato (Mean Opinion
  Score, utilizzato per misurare la fedelt vocale) ma attenzione alle
  prestazioni richieste, finoa 26 MIPS (milioni di istruzioni al
  secondo)!

  44..44..  RRTTPP PPrroottooccoolllloo ddii ttrraassppoorrttoo RReeaall TTiimmee

  Adesso che abbiamo i dati " grezzi" , per incapsularli nello stack
  TCP/IP, seguiamo la seguente struttura:


  VoIP data packets
         RTP
         UDP
         IP
      I,II layers



  I Pacchetti di voce risiedono in pacchetti RTP (Protocollo di
  trasporto Real-Time) che a loro volta giacciono su pacchetti UDP-IP.

  Prima di tutto notiamo che VoIP non utilizza il protocollo TCP in
  quanto troppo pesante per le applicazioni multimediali, quindi l'unica
  alternativa  l'UDP.

  Tuttavia, nei pacchetti UDP, non possiamo ordinare i pacchetti in
  ordine di arrivo (che  una necessit importantissima nel VoIP) perch
  non vi  il concetto di " connessione" , ogni pacchetto  indipendente
  dall'altro (concetto di datagramma); quindi dobbiamo introdurre un
  nuovo protocollo, l' RTP, capace di gestire queste problematiche.


                      Real Time Transport Protocol

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |V=2|P|X|  CC   |M|     PT      |       sequence number         |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                           timestamp                           |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |           synchronization source (SSRC) identifier            |
     +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
     |            contributing source (CSRC) identifiers             |
     |                             ....                              |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



  Dove:


  +o  V identifica la versione di RTP

  +o  P indica il padding, un byte di riempimento.

  +o  X indica la presenza delll'intestazione estesa.

  +o  Il campo CC rappresenta il numero di identificatori CSRC che
     seguono l'header a lunghezza fissa. Per esempio il campo CSRC viene
     utilizzato in caso di conferenza.

  +o  M  un bit per marcare.

  +o  PT indica il tipo di PayLoad (dati)

  Per una descrizione approfondita del protocollo RTP e di tutte le
  applicazioni relative si veda i relativi RFCs1889
  <http://www.ietf.org/rfc/rfc1889.txt> e 1890
  <http://www.ietf.org/rfc/rfc1890.txt> .

  44..55..  RRSSVVPP

  Nell'ambiente VoIP vengono utilizzati altri protocolli, come l'RSVP,
  che pu gestire la Qualit del Servizio (QoS).

  RSVP  un protocol di segnalazione che permette di riservare una certa
  quantit di banda e di latenza massima in ogni nodo (router) di rete
  attraversato che lo supporta.

  Per informazioni dettagliate sull'RSVP si veda l'RFC 2205
  <http://www.ietf.org/rfc/rfc2205.txt?number=2205>


  44..66..  QQuuaalliitt ddeell sseerrvviizziioo ((QQooSS))

  Abbiamo detto molte volte che le applicazioni VoIP richiedono un
  flusso di dati in tempo reale.

  Sfortunatamente, TCP/IP non pu garantire tale flusso (pu solo
  effettuare il massimo sforzo per cercare di conseguirlo). Abbiamo
  quindi bisogno di introdurre degli artifizi e delle politiche di
  schedulazione che possano gestire i pacchetti in OGNI router che
  attraversano.

  Ecco allora:


  1. Il campo TOS nel protocollo IP per descrivere il tipo di
     servizio:valori alti indicano bassa urgenza, mentre valori via via
     sempre pi alti segnalano urgenza crescente.

  2. Metodi di accodamento dei pacchetti:

     a. FIFO (First in First Out), Il pi stupido del metodi che fa
        passare i pacchetti in ordine di arrivo.

     b. WFQ (Weighted Fair Queuing), consiste nel far passare in modo
        equo i pacchetti (per esempio, i pacchetti FTP non possono
        consumare tutta la banda disponibile), a seconda del tipo di
        dati che contengono, tipicamente vengono fatti passare un
        pacchetto UDP ed uno TCP in modo paritario.

     c. CQ (Custom Queuing), gli utenti possono decidere la loro
        priorit.

     d. PQ (Priority Queuing), c' una numbero (tipicamente 4) di code
        con ciascuno un livello di priorit associato: prima di tutto,
        vengono fatti passare i pacchetti nella prima coda, poi (una
        volta terminati) si passa a quelli della seconda e cos via.

     e. CB-WFQ (Class Based Weighted Fair Queuing), simile al WFQ ma, in
        pi, abbiamo il concetto di classi (fino a 64) e la di banda
        associata a ciascuna classe.

  3. Propriet di shaping e policing, che permetteno di limitare la
     sorgente ad una ben prefissata banda in:

     a. download

     b. upload

  4. Prevenzione della congestione di rete, come il RED (Random Early
     Detection).

  Una esaustiva descrizione sulla QoS pu essere trovata sui
  Differentiated Services <http://www.ietf.org/html.charters/diffserv-
  charter.html>

  presso lo IETF.

  44..77..  HH332233:: pprroottooccoolllloo ddii sseeggnnaallaazziioonnee

  Il protocollo H323 viene utilizzato, ad esempio, dall'applicativo
  Microsoft Netmeeting per creare chiamate VoIP.

  Questo protocollo permette ad una serie di elementi di " parlare"

  tra loro:

  1. Terminali, clients che inizializzano le connessioni VoIP. Sebbene i
     terminali possano dialogare insieme senza aver bisogno di nessun
     altra identit,  necessario introdurre elementi addizionali per una
     visione pi scalabile.

  2. Gatekeepers, che operano essenzialmente:

     a. Una conversione nome-indirizzo, per utilizzare i nomi al posto
        degli indirizzi IP

     b. Un controllo di accesso, per abilitare o disabilitare alcune
        macchine o alcuni utenti

     c. Gestione della banda.

  3. Gateways, punto di riferimento per la conversione TCP/IP - PSTN.

  4. Multipoint Control Units (MCUs) to provide conference.

  5. Vengono anche utilizzati Servers Proxy.

  H323 permette anche la gestione del video.

  Per quanto riguarda la voce, l'h323  compatibile con le codifiche
  G.711, G.722, G.723, G.728 e G.729, mentre per il video supporta i
  protocolli h261 and h263.

  Maggiori informazioni sul protocollo h323 sono disponibili sugli
  Standards presso Openh323 <http://www.openh323.org/standards.html> ,
  su at questo sito web h323
  <http://www.cs.columbia.edu/~hgs/rtp/h323.html> , mentre la
  descrizione dello standard ufficiale  reperibile dalle ITU H-series
  Recommendations <http://www.itu.int/itudoc/itu-t/rec/h/> .

  L'h323 viene implementato in molto prodotti software come Microsoft
  Netmeeting <http://www.microsoft.com> , Net2Phone
  <http://www.net2phone.com> , DialPad <http://www.dialpad.com> , ... e
  altri prodotti freeware che puoi trovare sul sito web Openh323
  <http://www.openh323.org> .

  55..  RReeqquuiissiittii

  55..11..  RReeqquuiissiittii hhaarrddwwaarree

  Per creare un piccolo sistema VoIP hai bisogno del seguente hardware:


  1. PC 386 o superiore

  2. Scheda audio full duplex

  3. una scheda di rete o una connessione ad Internet o altro tipo di
     interfacciamento per permettere la comunicazione TCP/IP tra 2 PCs

  Tutto questo deve essere presente in 2 copie in quanto vogliamo
  simulare una comunicazione tra 2 entit.

  Gli strumenti sopra citati sono i minimi richiesti per una connessione
  VoIP: pi avanti vedremo che avremo bisogno di un hardware maggiore per
  avere successo una situazione reale su Internet

  La scheda audio deve necessariamente essere full duplex, altrimenti
  non sar possibile ascoltare nulla mentre si parla!

  In aggiunta si possono utilizzare schede acceleratrici per permettere
  la gestione di un flusso dati compresso (see Par 4.3).
  55..22..  SScchheeddee aacccceelleerraattrriiccii

  Possiamo usare schede acceleratrici per ottimizzare il protocollo di
  trasmissione. Due di queste (ed anche le uniche direttamente gestire
  dal kernel di Linux fino adesso) sono


  1. Quicknet PhoneJack

  2. Quicknet LineJack

  La Quicknet PhoneJack  una scheda audio che utilizza algoritmi
  standard per la compressione di streams audio quali G.723.1 ed altri
  (section 4.3) fino a 4.1 kbps di velocit

  Pu essere connessa direttamente ad una cornetta (POTS port) o ad una
  coppia microfono - altoparlante.

  E' disponibile con slots ISA e PCI.

  La Quicknet LineJack lavora come la PhoneJack ma ha funzionalit
  addizionali (vedi pi avanti).

  Per ulteriori informazioni si veda il sito web Quicknet
  <http://www.quicknet.net> .

  55..33..  SScchheeddee ggaatteewwaayy

  La Quicknet LineJack pu essere connessa ad una linea PSTN permettondo
  di creare un gateway VoIP.

  Dopodich bisogna usare un software che ne permetta il controllo (vedi
  dopo).

  55..44..  RReeqquuiissiittii ssooffttwwaarree

  Vediamo quale software possiamo installare utilizzando
  rispettivamente:


  1. Win9x

  2. Linux

  Sotto Win9x abbiamo il classico Microsoft Netmeeting oppure Internet
  Phone, DialPad e altri ancora mentre Quicknet ci offre il suo Internet
  Switchboard (scaricabile dal sito web Quicknet
  <http://www.quicknet.net> ) che utilizza, appunto, le schede Quicknet.

  Esiste anche software libero scaricabile da OpenH323
  <http://www.openh323.org> .

  Sotto Linux possiamo utilizzare soltanto il software libero (per il
  momento) sempre scaricabile da OpenH323 <http://www.openh323.org> :
  simph323 o ohphone che pu lavorare con l'hardware Quicknet.

  Attenzione: tutto il codice sorgente Openh323 deve essere compilato in
  una directory home (oppure sar necessario settare una variabile
  d'ambiente al valore opportuno). Il tempo di compilazione potrebbe
  essere molto elevato e potrebbe richiedere una quantit non
  indifferente di RAM (un Pentium 133 con 16 MB di ram non
  consigliabile!).




  55..55..  SSooffttwwaarree ggaatteewwaayy

  Per gestire le caratteristiche di un gateway (far comunicare una rete
  VoIP con una rete PSTN)  necessario installare un qualche tipo di
  software:


  +o  Internet SwitchBoard <http://www.quicknet.net> per i sistemi
     Windows che opera anche come terminale h323;

  +o  PSTNGw <http://www.openh323.org/code.html> per Linux e Windows .

  55..66..  SSooffttwwaarree ggaatteekkeeeeppeerr

  Come gatekeeper:


  1. Opengatekeeper, scaricabile liberamente dal sito web opengatekeeper
     <http://www.opengatekeeper.org> for Linux and Win9x.

  2. Openh323 Gatekeeper (GK) da qui
     <http://www.willamowius.de/openh323gk.html> .

  55..77..  AAllttrroo ssooffttwwaarree


  In aggiunta riporto del software compatibile h323:


  +o  Phonepatch, in grado di risolvere problematiche relative ad un
     firewall-NAT. Semplicamente permette agli utenti (esterni ed
     interni) di effettuare chiamate da una pagina web (raggiungibile
     sia dall'esterno che dall'interno della rete): quando l'applicativo
     web si accorge che l'utente remoto  attivo provvede a chiamare
     l'utente che ha effettuato la chiamata web (tramite una chiamata
     h323) comunicandogli che la comunicazione pu avvenire. Phonepatch
     un software proprietario (la versione demo permette di effettuare
     chiamate di non pi di 3 minuti) che puoi trovare su questo sito web
     <http://www.equival.com/phonepatch> .

  66..  CCoonnffiigguurraazziioonnee ddeellllee sscchheeddee

  Qui vediamo come configurare le schede hardware acceleratrici sotto
  Linux e Windows.

  66..11..  QQuuiicckknneett PPhhoonneeJJaacckk

  Come abbiamo visto la Quicknet Phonejack  una scheda audio con
  propriet di accelerazione VoIP. Supporta:


  +o  G.711 normale e mu/A-law, G.728-9, G.723.1 (TrueSpeech) e LPC10.

  +o  Connettore telefonico (per l'utilizzo con una cornetta) o

  +o  Jacks Microfono + Altoparlante.

  La PhoneJack  una scheda ISA (o PCI) da installare sul Pc. Pu anche
  lavorare senza IRQ.

  66..11..11..  IInnssttaallllaazziioonnee ddeell ssooffttwwaarree

  Sotto Windows bisogna installre:



  1. Il driver della scheda

  2. l'applicativo Internet Switchboard

  tutto ci si trova sul sito web Quicknet <http://www.quicknet.net>


  Dopo che Internet Switchboard  stato installato, hai bisogno di
  registrarti alla Quicknet per poter usufruire di tutte le funzionalit
  della tua scheda.

  Quando alzi la cornetta Switchboard si sveglia e rimane in attesa del
  numero di telefono da comporre (direttamente dalla cornetta).  In tal
  caso si pu:


  1. Digitare asterisco, poi comporre un indirizzo IP (usando gli
     asterischi al posto del punto) e cancelletto per terminare la
     composizione.

  2. Digitare direttamente un numero telefonico (completo di prefisso
     internazionale) per chiamare un telefono classico. In tal caso
     avrai bisogno della registrazione presso un gestore gateway a cui
     pagare a seconda del tempo che rimarrai connesso.

  3. Digitare direttamente un numero di chiamata rapida che hai
     precedentemente memorizzato (fino a 2 cifre).

  Internet Swichboard  compatibile h323, quindi puoi usare software
  commerciale come Microsoft Netmeeting dall'altro " capo" .

  Al posto di Internet Switchboard si pu usare anche un applicativo free
  come openphone <http://www.openh323.org/code.html> (con interfaccia
  grafica) o ohphone <http://www.openh323.org/code.html> (linea di
  comando).

  Sotto Linux devi installare:


  1. Il driver della scheda acceleratrice, dal sito web Quicknet
     <http://www.quicknet.net> . Dopodich dovrai compilarlo
     (controllando opportunamente che la directory /usr/src/linux punti
     alla directory dei sorgenti di Linux): digita " make" per le
     istruzioni.

  2. L'applicativo Openphone <http://www.openh323.org/code.html> o
     Ohphone <http://www.openh323.org/code.html> .

  3. Se sei uno sviluppatore puoi utilizzare le SDK
     <ftp://ftp.quicknet.net/Developer/Linux/Docs/> per creare le tue
     applicazioni personalizzate (anche sotto Windows).

  66..11..22..  SSeettttaaggggii

  Con Internet Switchboard (e anche con gli altri applicativi) puoi:


  1. Cambiare l'algoritmo di compressione preferito

  2. Variare il ritardo " jitter" (jitter delay)

  3. Settare il volume

  4. Settare il livello di cancellazione dell'eco.


  66..22..  QQuuiicckknneett LLiinneeJJaacckk

  Questa scheda  molto simile alla precedente, e, in aggiunta, supporta
  le funzionalit di gateway. In effetti la Linejack presenta, oltre ai
  connettori classici della PhoneJack, anche un connettore per la linea
  telefonica PSTN.

  L'unico appunto che vale la pena di sottolineare  la necessit di
  utilizzare un applicativo in grado di gestire anche tale linea PSTN:
  PSTNGw <http://www.quicknet.net/code.html> (for Linux and Windows) e
  Internet Switchboard <http://www.quicknet.net> .

  77..  SSeettuupp

  In questo capitolo vedremo come configurare una sistema VoIP, semplice
  al principio, via via poi pi complesso.

  77..11..  UUnnaa ccoonnffiigguurraazziioonnee sseemmpplliiccee:: IIPP ttoo IIPP



  A (Win9x+Scheda audio)   -  -  -    B (Win9x+Scheda audio)

       192.168.1.1       -  -  -         192.168.1.2


               192.168.1.1 chiama 192.168.1.2.



  A e B devono avere:


  1. Microsoft Netmeeting (o software compatibile h323) installato e
     correttamente configurato.

  2. una scheda di rete o un altro tipo di interfaccia compatibile
     TCP/IP per dialogare tra loro.

  In questa prospettiva A pu effettuare una chiamata h323 verso B (se B
  ha Netmeeting attivo) usando il suo indirizzo IP 192.168.1.2.
  Dopodich B, se vuole, pu rispondere e i pacchetti VoIP iniziano a
  transitare.

  77..22..  UUssoo ddeeii nnoommii

  Se utilizzi Microsoft Windows in una lan, puoi chiamare una macchina
  utilizzando il servizio nomi NetBIOS, che pu funzionare su NetBEUI o
  su TCP/IP. Tutto ci di cui hai bisogno, quindi,  di chiamare il nome
  dell'altro computer per effettuare la connessione.


            A            -  -  -             B

       192.168.1.1       -  -  -        192.168.1.2

         Mario           -  -  -           Paola


                        Mario chiama Paola.



  Tutto ci  possibile in quanto la chiamata NetBIOS di Mario verso Paola
  viene convertita in chiamata IP.

  Gli esempi sopra citati sono molto semplici da implementari ma
  scarsamente scalabili.

  In una rete pi grande quale Internet  impossibile effettuare chiamate
  con gli indirizzi, in quanto difficilmente conosco l'indirizzo IP del
  destinatario (che nella maggior parte dei casi, essendo dinamico,
  cambia ad ogni nuova connessione al provider). Oltretutto il servizio
  di nomi NetBIOS non funziona poich i messaggi da esso usati sono di
  tipo broadcast, che notoriamente non attraversano i routers.

  77..33..  CChhiiaammaattaa ssuu IInntteerrnneett uuttiilliizzzzaannddoo uunn sseerrvveerr WWIINNSS

  L'idea dei nomi NetBIOS pu essere riutilizzata anche in ambiente
  Internet con l'ausilio di un server WINS: le macchine possono essere
  configurate in modo tale da chiedere ad un unico server la risoluzione
  dei nomi in indirizzi.

  I PCs che utilizzano lo stesso server WINS saranno in grado di
  comunicare fra loro.



  A (Server WINS  S) - - - - I  - - - -  B (Server WINS  S)
                               N
                               T
                               E  - - - - -   S (Server WINS)
  C (Server WINS  S) - - - - R
                               N
                               E  - - - -  D (Server WINS  S)
                               T

                     Comunicazione su Internet



  A, B, C e D appartengono a sottoreti differenti, ma possono chiamarsi
  l'un l'altro utilizzando i loro nomi NetBIOS. Il requisito
  fondamentale, come precedentemento detto  che tutti gli hosts
  utilizzino la stessa macchina come Server WINS (S appunto).

  Nota: I servers WINS non hanno performance eccezionali dato che si
  basano sul protocollo NetBIOS (che a livello locale continua a fare
  uso dei broadcasts) e dovrebbe essere utilizzato soltanto per unire
  piccole e poche sottoreti.

  77..44..  UUnn ggrroossssoo pprroobblleemmaa:: iill mmaassqquueerriinngg..

  Un problema di carenza di indirizzi IP viene normalmente risolto
  utilizzando il cosiddetto masquering (anche chiamato NAT, network
  address translation): esiste soltanto un IP pubblico (che Internet pu
  " vedere" direttamente), le altre macchine vengono " mascherate"

  utilizzando tale IP.



             A  - - -

             B  - - -   Router con NAT  - - -  Internet

             C  - - -


                         Questo non funziona


  Nell'esempio A,B e C possono navigare, pingare, usare posta, news e
  altri servizi su Internet, ma NON possono fare una chiamata VoIP verso
  l'esterno. Questo perch il protocollo h323 manda l'indirizzo IP a
  livello applicazione, quindi la risposta non arriver mai al chiamante
  (che utilizza un indirizzo IP privato).

  Soluzioni:


  +o  Esiste un modulo su Linux che modifica i pacchetti h323 evitando il
     problema. Lo puoi scaricare qui
     <http://www.coritel.it/coritel/ip/sofia/nat/nat2/nat2.htm> . Per
     installarlo devi copiarlo nella directory sorgente del kernel
     (specificata dalle istruzioni sul sito), modificare il Makefile e
     ricompilare i moduli del kernel installando poi il modulo con "
     modprobe ip_masq_h323" . Sfortunatamente questo modulo non lavora
     (per il momento) con il software libero Ohphone (non ne conosco il
     motivo).



             A  - - -   Router con NAT

             B  - - -         +           - - -  Internet

             C  - - -  modulo ip_masq_h323


                         Questo funziona




  +o  C' anche un applicativo che risolve il problema del masquering: per
     ulteriori informazioni si veda il ``Par 5.7''



             A  - - -

             B  - - -    PhonePatch   - - -  Internet

             C  - - -


                           Questo funziona



  77..55..  UUssaarree LLiinnuuxx

  Con Linux (usato come terminale h323) puoi sperimentare tutte le prove
  fatte precedentemente eccetto quelle dietro un router-NAT con il
  modulo ip_masq_h323 poich (come gi detto) Ohphone non funziona con
  tale modulo: sarai quindi costretto ad usare Phonepatch.``Par 5.7''


  77..55..11..  SSiinnttaassssii OOhhpphhoonnee

  " ohphone -l|--listen [opzioni]"


  " ohphone [opzioni]... indirizzo"



  +o  " -l" , ascolta sulla porta standard (1720)

  +o  " indirizzo" , significa che non vogliamo ricevere, bensi' fare una
     chiamata a " indirizzo"

  +o  " -n" , " --no-gatekeeper" , questo dice di non usare gatekeeper

  +o  " -q num" , " --quicknet num" , utilizza la scheda Quicknet, device
     /dev/phone(num)

  +o  " -s device" , " --sound device" , utilizza il device sonoro "
     /dev/device"

  +o  " -j ritardo" , " --jitter ritardo" , cambia il buffer di ritardo,
     impostandolo a " ritardo" .

  Inoltre, quanto lanciamo ohphone, possiamo digitare dei comandi
  direttamente sull'interprete (come, ad esempio, decrementare l'AEC,
  Automatic Echo Cancellation).

  77..66..  CCoonnffiigguurraarree uunn ggaatteekkeeeeppeerr

  Puoi provare le funzionalit di gatekeeper.


  Esempio

          (Terminale H323) A  - - -
                                   \
          (Terminale H323) B  - -  - D (Gatekeeper)
                                   /
          (Terminale H323) C  - - -

                     Configurazione del Gatekeeper




  1. Gli hosts A,B e C hanno come gatekeeper D.

  2. Alla partenza ogni host comunica al gatekeeper il proprio indirizzo
     e il proprio nome associato (compresi gli alias) che potr essere
     utilizzato da un chiamante per raggiungerlo.

  3. Quando un terminale chiede a D un determinato, D risponder fornendo
     al chiamante il giusto indirizzo IP, permettendo cos la
     comunicazione tra i 2 terminali.

  Notiamo che il gatekeeper  soltanto in grado di risolvere i nomi in
  indirizzi, non pu unire hosts che non gi siano raggiungibili (a
  livello IP), in altre parole il gatekeeper non pu operare da router
  NAT.

  Puoi trovare il gatekeeper qui <http://www.opengatekeeper.org> : sono
  richieste le librerie Openh323 <http://www.openh323.org/code.html> .

  E' necessario lanciare il programma almeno con l'opzione -d (come
  demone) o -x (per eseguirlo in foreground).

  E' anche disponibile un file di configurazione (.ini) qui
  <http://www.opengatekeeper.org/opengate.ini> .

  77..77..  CCoonnffiigguurraarree uunn ggaatteewwaayy

  Come abbiamo gi detto, un gateway  un'entit che pu far comunicare una
  rete VoIP ad una PSTN permettendoci di effettuare una chiamata da
  Internet verso un comune telefono.Abbiamo quindi bisogno della scheda
  gateway (Quicknet LineJack) e del relativo software:

  Sul sito web OpenH323 <http://www.openh323.org> troviamo:


  1. I driver per la Linejack

  2. L'applicativo PSTNGw per gestire il gateway.

  Se l'eseguibile non funziona avrai bisogno di scaricare i sorgenti e
  compilarli dopo aver opportunamente scaricato e compilato anche le
  librerie Openh323 <http://www.openh323.org/code.html> , entrambi su
  una home directory.

  88..  CCoonnssiiddeerraazziioonnii ddii bbaannddaa

  Da tutto quello che abbiamo detto non abbiamo ancora risolto i
  problemi legati alla banda, come cio creare un flusso di dati in tempo
  reale. Sappiamo che non possiamo risolverlo finch non abilitiamo i
  protocolli per la gestione della banda su ogni router che
  attraversiamo, allora cosa possiamo fare?

  Prima di tutto cerchiamo di utilizzare l'lagoritmo di compressione che
  pi ci aiuta ad occupare meno banda possibile (come, ad esempio, l'
  LPC-10 che riesce a consumare appena 2.5 kbps, circa 313 bytes/s).

  Dopo di ch iniziamo a classificare i nostri pacchetti (iniziando dal
  campo TOS del protocollo IP), con il valore pi alto possibile co da
  ottenere dai router la priorit massima possibile.

  Importante: tutto questo NON ci mette al sicuro garantendoci una banda
  sufficiente per la nostra conversazione, perch finch non si crea
  un'infrastruttura in grado di gestire shaping, prenotazione di banda e
  cos via non sar mai possibile avere una garanzia assoluta, in effetti
  TCP/IP non  un protocollo real time.

  A possible solution could be starts with little WAN at guaranteed
  bandwidth and get larger step by step.

  Possiamo infine notare un'ultima cosa: anche i cosiddetti servizi
  garantiti come le linee PSTN non sono in grado di gestire tutti
  clienti che hanno nello stesso istante: per esempio una cella GSM non
  pu sopportare pi di un centinaio o un migliaio di utenti alla volta.

  Comunque sia il servizio VoIP pu essere considerato un buon punto di
  partenza, in alternativa al servizio offerto dalle linee PSTN.

  99..  LLiinnkkss uuttiillii


  +o  Voxilla <http://www.voxilla.org>

  +o  Linux Telephony <http://www.linuxtelephony.org>

  +o  International Communication Union <http://www.itu.org>

  +o  Sito web Quicknet <http://www.quicknet.net>

  +o  Sito web Open H323 <http://www.openh323.org>

  +o  Speak Freely <http://www.speakfreely.org>

  +o  Cisco Systems <http://www.cisco.com>




































































