<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>VoIP and Hacking</title>
	<atom:link href="http://www.voipandhack.it/feed" rel="self" type="application/rss+xml" />
	<link>http://www.voipandhack.it</link>
	<description></description>
	<pubDate>Mon, 30 Aug 2010 19:57:12 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Un link molto interessante</title>
		<link>http://www.voipandhack.it/archives/societa/un-link-molto-interessante</link>
		<comments>http://www.voipandhack.it/archives/societa/un-link-molto-interessante#comments</comments>
		<pubDate>Mon, 30 Aug 2010 19:50:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Società]]></category>

		<category><![CDATA[e-learning]]></category>

		<category><![CDATA[internet]]></category>

		<category><![CDATA[khanacademy]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1679</guid>
		<description><![CDATA[Non capita spesso di segnalare un sito web come una perla imperdibile, ma questo è uno di quei casi, e la risorsa in questione è il sito web di khanacademy.org.
La Khan Academy  è una organizzazione no-profit che ha come obiettivo quello di fornire un&#8217;e-learning di alta qualità, ma gratuito ed accessibile a tutti. Sul sito [...]]]></description>
			<content:encoded><![CDATA[<p>Non capita spesso di segnalare un sito web come una perla imperdibile, ma questo è uno di quei casi, e la risorsa in questione è il <a href="http://www.khanacademy.org/" target="_blank">sito web</a> di khanacademy.org.<span id="more-1679"></span></p>
<p>La Khan Academy  è una organizzazione no-profit che ha come obiettivo quello di fornire un&#8217;e-learning di alta qualità, ma gratuito ed accessibile a tutti. Sul sito è possibile trovare i link ad oltre 1600 video ospitati su Youtube, i quali coprono già diverse discipline, sopratutto scientifiche. Si va dalla chimica alla biologia, dalla fisica alla matematica, cui viene dedicata un&#8217;attenzione particolare, a tutti i livelli, a partire dall&#8217;aritmetica di base, fino ad arrivare all&#8217;analisi matematica più avanzata.</p>
<p>I video sono tutti di durata approssimativamente variabile tra i 10 edi 20 minuti e sono stati realizzati tutti dallo stesso Salman Khan, fondatore della Academy, nei pomeriggi liberi che la sua attività nel management finanziario gli consentiva. Attualmente Sal, che ha un solidissimo background in matematica ed in computer science, ha lasciato il proprio lavoro per dedicarsi interamente a questo progetto, grazie al contributo finanziario di alcuni benefattori.</p>
<p>La dedizione e la motivazione con cui Sal intende questo compito hanno sicuramente qualcosa di spirituale, che forse deriva dalla propria origine indiana (è nato a New Orleans da madre di Calcutta e padre del Bangladesh).<br />
Egli ha inoltre sviluppato un metodo per analizzare l&#8217;efficacia dei video che realizza: di conseguenza è riuscito a stabilire delle metriche che lo aiutano a decidere la durata ottimale di una lezione o quali siano i punti di un video che risultano più difficili da comprendere.</p>
<p>Le intenzioni dichiarate sono quella di estendere la gamma delle discipline trattate &#8220;to cover everything&#8221; (per usare le parole dello stesso Khan), e di raggiungere la indipendenza economica entro 5 anni, appaggiandosi a qualche fondazione, per non perdere la caratterizzazione open-source del progetto.<br />
Le premesse sono ottime, considerato il successo (oltre 200000 studenti seguono mensilmente le varie lezioni), e il fatto che lo stesso Bill Gates (che forse non ha colto la filosofia open-source dell&#8217;iniziativa, o forse semplicemente se ne frega quando non si tratta del codice Microsoft) si è dichiarato entusiasta della iniziativa.</p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="Un link molto interessante"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/societa/un-link-molto-interessante"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2010-08-30 21:08:48"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;Non capita spesso di segnalare un sito web come una perla imperdibile, ma questo è uno di quei casi, e la risorsa in questione è il &lt;a href=&quot;http://www.khanacademy.org/&quot; target=&quot;_blank&quot;&gt;sito web&lt;/a&gt; di khanacademy.org.&lt;span id=&quot;more-1679&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;La Khan Academy  è una organizzazione no-profit che ha come obiettivo quello di fornire un&amp;#8217;e-learning di alta qualità, ma gratuito ed accessibile a tutti. Sul sito è possibile trovare i link ad oltre 1600 video ospitati su Youtube, i quali coprono già diverse discipline, sopratutto scientifiche. Si va dalla chimica alla biologia, dalla fisica alla matematica, cui viene dedicata un&amp;#8217;attenzione particolare, a tutti i livelli, a partire dall&amp;#8217;aritmetica di base, fino ad arrivare all&amp;#8217;analisi matematica più avanzata.&lt;/p&gt;
&lt;p&gt;I video sono tutti di durata approssimativamente variabile tra i 10 edi 20 minuti e sono stati realizzati tutti dallo stesso Salman Khan, fondatore della Academy, nei pomeriggi liberi che la sua attività nel management finanziario gli consentiva. Attualmente Sal, che ha un solidissimo background in matematica ed in computer science, ha lasciato il proprio lavoro per dedicarsi interamente a questo progetto, grazie al contributo finanziario di alcuni benefattori.&lt;/p&gt;
&lt;p&gt;La dedizione e la motivazione con cui Sal intende questo compito hanno sicuramente qualcosa di spirituale, che forse deriva dalla propria origine indiana (è nato a New Orleans da madre di Calcutta e padre del Bangladesh).&lt;br /&gt;
Egli ha inoltre sviluppato un metodo per analizzare l&amp;#8217;efficacia dei video che realizza: di conseguenza è riuscito a stabilire delle metriche che lo aiutano a decidere la durata ottimale di una lezione o quali siano i punti di un video che risultano più difficili da comprendere.&lt;/p&gt;
&lt;p&gt;Le intenzioni dichiarate sono quella di estendere la gamma delle discipline trattate &amp;#8220;to cover everything&amp;#8221; (per usare le parole dello stesso Khan), e di raggiungere la indipendenza economica entro 5 anni, appaggiandosi a qualche fondazione, per non perdere la caratterizzazione open-source del progetto.&lt;br /&gt;
Le premesse sono ottime, considerato il successo (oltre 200000 studenti seguono mensilmente le varie lezioni), e il fatto che lo stesso Bill Gates (che forse non ha colto la filosofia open-source dell&amp;#8217;iniziativa, o forse semplicemente se ne frega quando non si tratta del codice Microsoft) si è dichiarato entusiasta della iniziativa.&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/societa/un-link-molto-interessante/feed</wfw:commentRss>
		</item>
		<item>
		<title>Asterisk e DTMF</title>
		<link>http://www.voipandhack.it/archives/asterisk/asterisk-e-dtmf</link>
		<comments>http://www.voipandhack.it/archives/asterisk/asterisk-e-dtmf#comments</comments>
		<pubDate>Fri, 27 Aug 2010 00:16:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Asterisk]]></category>

		<category><![CDATA[Telefonia]]></category>

		<category><![CDATA[VoIP]]></category>

		<category><![CDATA[dtmf]]></category>

		<category><![CDATA[ivr]]></category>

		<category><![CDATA[rfc2833]]></category>

		<category><![CDATA[RTP]]></category>

		<category><![CDATA[sip]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1677</guid>
		<description><![CDATA[Con DTMF (Dual tone multi frequencies) ci si riferisce a quei toni che vengono generati quando viene premuto un tasto [una cifra, il simbolo di asterisco (star) o di cancelletto (pound)] sulla tastiera di un apparecchio telefonico. Data la attuale e crescente tendenza alla adozione di sistemi IVRs, l&#8217;utilizzo di DTMFs sta ovviamente crescendo in [...]]]></description>
			<content:encoded><![CDATA[<p>Con DTMF (Dual tone multi frequencies) ci si riferisce a quei toni che vengono generati quando viene premuto un tasto [una cifra, il simbolo di asterisco (star) o di cancelletto (pound)] sulla tastiera di un apparecchio telefonico. Data la attuale e crescente tendenza alla adozione di sistemi IVRs, l&#8217;utilizzo di DTMFs sta ovviamente crescendo in proporzione. <span id="more-1677"></span></p>
<p>Che si chiami la propria banca, una qualsiasi azienda, un ufficio o servizio pubblico, diviene sempre più probabile inbattersi in una serie di opzioni IVR cui rispondere premendo tasti corrispondenti a cifre, asterisco e cancelletto, in varie salse e combinazioni.</p>
<p>Pertanto, quando si configura professionalmente un server asterisk, assume grande importanza un altrettanto corretto setup del suo meccanismo di rilevamento dei DTMF.</p>
<p>Per poter configurare correttamente la gestione dei DTMF, è forse utile sapere che esistono due tipi di DTMF: inband ed out-of-band.</p>
<p>Inband sono quei toni DTMF che sono a tutti gli effetti segnali audio. Quando si preme un tasto numerico (ad esempio) del dialpad di un terminale telefonico, il tono che si ode dovrebbe essere esattamente quello che viene udito dal sistema telefonico all&#8217;altro capo, per poter essere affidabile. Il tipico problema della tecnologia DTMF inband è che il sistema telefonico può confondere suoni di un alto come DTMF random. Succede realmente che una donna, mentre parla al telefono, rilevi in sottofondo un DTMF senza aver realmente premuto alcun tasto.</p>
<p>Una voce femminile, essendo caratterizzata da toni piu alti può venire più facilmente riconosciuta, incorrettamente, come un DTMF rispetto ad una voce maschile.</p>
<p>Un altro inconveniente dei DTMF inband consiste nel fatto che se la linea è cattiva e se per questo una chiamata vocale non risultasse chiara, i DTMF non verrebbero inviati correttamente e il terminale all&#8217;altra estremità non sarebbe pertanto in grado di interpretarli correttamente.</p>
<p>Un fastidioso rumore di fondo pure può causare lo stesso effetto.<br />
L&#8217;utilizzo di un qualsiasi codec diverso da g711/ulaw/alaw risulterà generalmente in una distorsione dell&#8217;audio dei DTMF.<br />
I DTMF inband non sono infatti supportati sul codec g729.</p>
<p>I DTMF out-of-band invece non soffrono di questi problemi. Non si tratta infatti di un segnale audio, ma di un segnale digitale che non viene influenzato dai fattori appena visti. Tuttavia richiedono che la parte inviante, tipicamente il telefono, possieda anch&#8217;esso la capacità di inviare DTMFs out-of-band. Sfortunatamente i normali telefoni casalinghi, ma questo vale anche per i cellulari, non possono trasmettere DTMF out-of-band.</p>
<p>Out-of-band è una modalità affidabile per l&#8217;invio di DTMF che a sua volta comprende due modalità distinte: SIP-INFO ed RFC2833.<br />
SIP-INFO non viene molto utilizzato mentre RFC2833 [Schulzrinne e Petrack (2000)], che descrive come trasportare la segnalazione DTMF, altri toni di segnale, ed eventi telefonici, all&#8217;interno di pacchetti RTP (Reat Time Protocol), è diventato lo standard di fatto relativamente all&#8217;uso dei DTMF out-of-band nel VoIP, quando si utilizza SIP.</p>
<p>Quando si imposta un sistema Asterisk destinato a  interfacciarsi solamente con altri sistemi puramente VoIP, non vi è motivo di preoccuparsi, così come purtroppo non vi è molto da fare relativamente a chiamate provenienti da sorgenti non VoIP.</p>
<p>Tutti gli IP phones possiedono la capacità di usare DTMF sia inband che out-of-band. Per default la maggior parte di essi è gia impostata ad usare la modalità RFC2833.<br />
Non occorre modificarla, ma solo verificare che per caso non sia impostata in modo differente.</p>
<p>Dal lato Asterisk, non importa quale versione si usi, i toni DTMF verranno tranquillamente accettati senza alcuna configurazione extra.</p>
<p>Se ad un sistema Asterisk si interfacciano sia terminali VoIP che terminali o linee analogiche, potrebbe essere necessario apportare delle modifiche al file zapata.conf (o chan_dahdi.conf). Questo perché zapata.conf (o chan_dahdi.conf) è il file che si occupa della configurazione dell&#8217; hardware che abilità i telefoni e le linee non VoIP a connettersi al server Asterisk.<br />
Se asterisk riceve correttamente i DTMF dagli IP phones ciò non implica che li debba ricevere altrettanto bene da parte di apparecchi o linee analogiche. Le modifiche a zapata.conf (o chan_dahdi.conf) si limitano poi al tuning dei valori rxgain, txgain e relaxdtmf.<br />
Pertanto il valore di default rxgain=0.0 può venire modificato mentre relaxdtmf=no può venire cambiata in relaxdtmf=yes. Ma ancora una volta, se i toni DTMF dovessero giungere poco chiari a causa di una connessione di cattiva qualità, Asterisk faticherebbe certamente ad interpretarli, e potrebbe non riconoscerli del tutto.</p>
<p>Se una chiamata provenisse pertanto da una sorgente analogica, ad esempio un normale fisso, oppure da un cellulare, significherebbe che eventuali DTMFs entranti sarebbero solamente di tipo inband e non ci sarebbe un gran chè su cui intervenire.<br />
Se la chiamata proviene da un cellulare, che trasmette i DTMF come segnali audio, un server Asterisk potrebbe non essere in grado di intercettarli distintamente. Non si potrà mai conoscere i percorsi che tali DTMF hanno compiuto e quanto ciò possa aver apportato loro una qualche distorsione prima di raggiungere il server asterisk.</p>
<p>Alcuni utenti hanno riportato che la rimozione di ogni riferimento ad un qualsiasi DTMF mode sui propri PBX Asterisk ha risolto qualsiasi inconveniente precedentemente incontrato con i DTMF. Ciò si effettua editando sip.conf per rimuovere qualsiasi riferimento a linee tipo &#8220;dtmfmode=rfc2833&#8243; o &#8220;dtmf=inband&#8221;, consentendo di fatto ad Asterisk negoziare la modalità DTMF in modo autonomo.</p>
<p>Tuttavia, alcuni devices (Linksys, alcuni IP phones) richiedono l&#8217;impostazione di un DTMF mode. In tal caso, si consiglia di scegliere RFC2833 come DTMF mode. Se non dovesse funzionare occorre tentare le altre opzioni possibili, inband o SIP INFO.</p>
<p><strong>L&#8217;importanza di aggiornare la versione di Asterisk</strong><br />
Versioni datate di Asterisk (tipicamente pre-1.4) evidenziano problemi coi DTMF più di quanto avvenga con versioni più recenti. Fix relativi al miglioramento del mode rfc2833 sono presenti nella versione 1.6 (1.6.2.11) mentre nella 1.8, che attualmente si trova in beta version (è stata appena annunciata la release di Asterisk 1.8.0-beta3), ha fatto la sua comparsa un enhancement relativo ai DTMF inband.</p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="Asterisk e DTMF"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/asterisk/asterisk-e-dtmf"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2010-08-27 02:08:03"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;Con DTMF (Dual tone multi frequencies) ci si riferisce a quei toni che vengono generati quando viene premuto un tasto [una cifra, il simbolo di asterisco (star) o di cancelletto (pound)] sulla tastiera di un apparecchio telefonico. Data la attuale e crescente tendenza alla adozione di sistemi IVRs, l&amp;#8217;utilizzo di DTMFs sta ovviamente crescendo in proporzione. &lt;span id=&quot;more-1677&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Che si chiami la propria banca, una qualsiasi azienda, un ufficio o servizio pubblico, diviene sempre più probabile inbattersi in una serie di opzioni IVR cui rispondere premendo tasti corrispondenti a cifre, asterisco e cancelletto, in varie salse e combinazioni.&lt;/p&gt;
&lt;p&gt;Pertanto, quando si configura professionalmente un server asterisk, assume grande importanza un altrettanto corretto setup del suo meccanismo di rilevamento dei DTMF.&lt;/p&gt;
&lt;p&gt;Per poter configurare correttamente la gestione dei DTMF, è forse utile sapere che esistono due tipi di DTMF: inband ed out-of-band.&lt;/p&gt;
&lt;p&gt;Inband sono quei toni DTMF che sono a tutti gli effetti segnali audio. Quando si preme un tasto numerico (ad esempio) del dialpad di un terminale telefonico, il tono che si ode dovrebbe essere esattamente quello che viene udito dal sistema telefonico all&amp;#8217;altro capo, per poter essere affidabile. Il tipico problema della tecnologia DTMF inband è che il sistema telefonico può confondere suoni di un alto come DTMF random. Succede realmente che una donna, mentre parla al telefono, rilevi in sottofondo un DTMF senza aver realmente premuto alcun tasto.&lt;/p&gt;
&lt;p&gt;Una voce femminile, essendo caratterizzata da toni piu alti può venire più facilmente riconosciuta, incorrettamente, come un DTMF rispetto ad una voce maschile.&lt;/p&gt;
&lt;p&gt;Un altro inconveniente dei DTMF inband consiste nel fatto che se la linea è cattiva e se per questo una chiamata vocale non risultasse chiara, i DTMF non verrebbero inviati correttamente e il terminale all&amp;#8217;altra estremità non sarebbe pertanto in grado di interpretarli correttamente.&lt;/p&gt;
&lt;p&gt;Un fastidioso rumore di fondo pure può causare lo stesso effetto.&lt;br /&gt;
L&amp;#8217;utilizzo di un qualsiasi codec diverso da g711/ulaw/alaw risulterà generalmente in una distorsione dell&amp;#8217;audio dei DTMF.&lt;br /&gt;
I DTMF inband non sono infatti supportati sul codec g729.&lt;/p&gt;
&lt;p&gt;I DTMF out-of-band invece non soffrono di questi problemi. Non si tratta infatti di un segnale audio, ma di un segnale digitale che non viene influenzato dai fattori appena visti. Tuttavia richiedono che la parte inviante, tipicamente il telefono, possieda anch&amp;#8217;esso la capacità di inviare DTMFs out-of-band. Sfortunatamente i normali telefoni casalinghi, ma questo vale anche per i cellulari, non possono trasmettere DTMF out-of-band.&lt;/p&gt;
&lt;p&gt;Out-of-band è una modalità affidabile per l&amp;#8217;invio di DTMF che a sua volta comprende due modalità distinte: SIP-INFO ed RFC2833.&lt;br /&gt;
SIP-INFO non viene molto utilizzato mentre RFC2833 [Schulzrinne e Petrack (2000)], che descrive come trasportare la segnalazione DTMF, altri toni di segnale, ed eventi telefonici, all&amp;#8217;interno di pacchetti RTP (Reat Time Protocol), è diventato lo standard di fatto relativamente all&amp;#8217;uso dei DTMF out-of-band nel VoIP, quando si utilizza SIP.&lt;/p&gt;
&lt;p&gt;Quando si imposta un sistema Asterisk destinato a  interfacciarsi solamente con altri sistemi puramente VoIP, non vi è motivo di preoccuparsi, così come purtroppo non vi è molto da fare relativamente a chiamate provenienti da sorgenti non VoIP.&lt;/p&gt;
&lt;p&gt;Tutti gli IP phones possiedono la capacità di usare DTMF sia inband che out-of-band. Per default la maggior parte di essi è gia impostata ad usare la modalità RFC2833.&lt;br /&gt;
Non occorre modificarla, ma solo verificare che per caso non sia impostata in modo differente.&lt;/p&gt;
&lt;p&gt;Dal lato Asterisk, non importa quale versione si usi, i toni DTMF verranno tranquillamente accettati senza alcuna configurazione extra.&lt;/p&gt;
&lt;p&gt;Se ad un sistema Asterisk si interfacciano sia terminali VoIP che terminali o linee analogiche, potrebbe essere necessario apportare delle modifiche al file zapata.conf (o chan_dahdi.conf). Questo perché zapata.conf (o chan_dahdi.conf) è il file che si occupa della configurazione dell&amp;#8217; hardware che abilità i telefoni e le linee non VoIP a connettersi al server Asterisk.&lt;br /&gt;
Se asterisk riceve correttamente i DTMF dagli IP phones ciò non implica che li debba ricevere altrettanto bene da parte di apparecchi o linee analogiche. Le modifiche a zapata.conf (o chan_dahdi.conf) si limitano poi al tuning dei valori rxgain, txgain e relaxdtmf.&lt;br /&gt;
Pertanto il valore di default rxgain=0.0 può venire modificato mentre relaxdtmf=no può venire cambiata in relaxdtmf=yes. Ma ancora una volta, se i toni DTMF dovessero giungere poco chiari a causa di una connessione di cattiva qualità, Asterisk faticherebbe certamente ad interpretarli, e potrebbe non riconoscerli del tutto.&lt;/p&gt;
&lt;p&gt;Se una chiamata provenisse pertanto da una sorgente analogica, ad esempio un normale fisso, oppure da un cellulare, significherebbe che eventuali DTMFs entranti sarebbero solamente di tipo inband e non ci sarebbe un gran chè su cui intervenire.&lt;br /&gt;
Se la chiamata proviene da un cellulare, che trasmette i DTMF come segnali audio, un server Asterisk potrebbe non essere in grado di intercettarli distintamente. Non si potrà mai conoscere i percorsi che tali DTMF hanno compiuto e quanto ciò possa aver apportato loro una qualche distorsione prima di raggiungere il server asterisk.&lt;/p&gt;
&lt;p&gt;Alcuni utenti hanno riportato che la rimozione di ogni riferimento ad un qualsiasi DTMF mode sui propri PBX Asterisk ha risolto qualsiasi inconveniente precedentemente incontrato con i DTMF. Ciò si effettua editando sip.conf per rimuovere qualsiasi riferimento a linee tipo &amp;#8220;dtmfmode=rfc2833&amp;#8243; o &amp;#8220;dtmf=inband&amp;#8221;, consentendo di fatto ad Asterisk negoziare la modalità DTMF in modo autonomo.&lt;/p&gt;
&lt;p&gt;Tuttavia, alcuni devices (Linksys, alcuni IP phones) richiedono l&amp;#8217;impostazione di un DTMF mode. In tal caso, si consiglia di scegliere RFC2833 come DTMF mode. Se non dovesse funzionare occorre tentare le altre opzioni possibili, inband o SIP INFO.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;L&amp;#8217;importanza di aggiornare la versione di Asterisk&lt;/strong&gt;&lt;br /&gt;
Versioni datate di Asterisk (tipicamente pre-1.4) evidenziano problemi coi DTMF più di quanto avvenga con versioni più recenti. Fix relativi al miglioramento del mode rfc2833 sono presenti nella versione 1.6 (1.6.2.11) mentre nella 1.8, che attualmente si trova in beta version (è stata appena annunciata la release di Asterisk 1.8.0-beta3), ha fatto la sua comparsa un enhancement relativo ai DTMF inband.&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/asterisk/asterisk-e-dtmf/feed</wfw:commentRss>
		</item>
		<item>
		<title>Introduzione ad Asterisk AEL</title>
		<link>http://www.voipandhack.it/archives/asterisk/introduzione-ad-asterisk-ael</link>
		<comments>http://www.voipandhack.it/archives/asterisk/introduzione-ad-asterisk-ael#comments</comments>
		<pubDate>Thu, 26 Aug 2010 07:52:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Asterisk]]></category>

		<category><![CDATA[Telefonia]]></category>

		<category><![CDATA[VoIP]]></category>

		<category><![CDATA[AEL]]></category>

		<category><![CDATA[aelparse]]></category>

		<category><![CDATA[dialplan]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[programmazione]]></category>

		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1670</guid>
		<description><![CDATA[AEL è un acronimo che sta per Asterisk Extensions Language. Il suo scopo è quello di rendere la stesura dei dialplans più semplice rispetto a quanto avviene normalmente utilizzando la tradizionale sintassi di extensions.conf.
La sintassi standard è falsamente user friendly, rendendo difficoltoso redigere dialplans complessi, ed, molto spesso, ancora più difficoltoso interpretarli.
AEL invece rende la [...]]]></description>
			<content:encoded><![CDATA[<p>AEL è un acronimo che sta per Asterisk Extensions Language. Il suo scopo è quello di rendere la stesura dei dialplans più semplice rispetto a quanto avviene normalmente utilizzando la tradizionale sintassi di extensions.conf.<span id="more-1670"></span></p>
<p>La sintassi standard è falsamente user friendly, rendendo difficoltoso redigere dialplans complessi, ed, molto spesso, ancora più difficoltoso interpretarli.<br />
AEL invece rende la scrittura di un dialplan una attività più semplice e rapida, specialmente nel caso in cui sistemista Asterisk provenga dal mondo IT, dato che la sua sintassi lo rende simile ad uno dei tanti linguaggi di programmazione con cui avrà probabilmente avuto familiarità.<br />
AEL è infatti concepito per fornire un linguaggio di programmazione per la scrittura di un dialplan per Asterisk.</p>
<p>Il parser AEL (pbx_ael.so) è totalmente separato dal modulo che effettua il parsing di extensions.conf (pbx_config.so).<br />
Per usare AEL, è necessario solamente che il modulo pbx_ael.so venga caricato da Asterisk. Ciò avviene automaticamente impostando &#8216;autoload=yes&#8217; in /etc/asterisk/modules.conf.<br />
Una volta che il modulo è caricato, ricerca il file &#8220;extensions.ael&#8221; in /etc/asterisk/.</p>
<p>Extensions.conf ed extensions.ael possono operare in sinergia.<br />
Alcuni utenti preferiscono ad esempio mantenere extensions.conf per le features configurate nella sezione &#8216;general&#8217;.</p>
<p>Ecco alcune indicazioni che spero possano riuscire ad invogliare qualcuno ad iniziare a scrivere in AEL.</p>
<p><strong>Contesti</strong><br />
Un contesto (context) in AEL rappresenta un set di extensions esattamente nella stessa maniera in cui lo fa in extensions.conf.<br />
<code><br />
context default {</code></p>
<p>};</p>
<p>NOTA: La parentesi graffa aperta deve essere usata come nello schema precedente. Spostarla sulla linea seguente può avere conseguenze imprevedibili!</p>
<p>Se il file extensions.ael non esistesse nella directory /etc/asterisk, basta crearlo assegnandone la opportuna proprietà all&#8217;utente con cui viene eseguito Asterisk. Può essere reso normalmente leggibile per tutti gli altri utenti.<br />
<code><br />
# touch /etc/asterisk/extensions.ael<br />
# chown asterisk:asterisk /etc/asterisk/extensions.ael<br />
</code><br />
Per iniziare, se considerassimo, in extensions.conf, un context tipo il seguente:<br />
<code><br />
[context-stupido]<br />
exten =&gt; 333,1,Wait(3)<br />
exten =&gt; 333,n,Answer()<br />
exten =&gt; 333,n,Playback(benvenuto)<br />
exten =&gt; 333,n,MusicOnHold()<br />
exten =&gt; h,1,NoCDR()<br />
exten =&gt; h,n,Hangup()<br />
</code><br />
Potremmo facilmente dedurne che la ripetizione di &#8220;exten =&gt; 333,&#8230;&#8221; è un po&#8217; noiosa e sarebbe auspicabile non fosse necessaria. E che la sua presenza aggiunge inoltre una certa complessità visiva al codice, anche se si tratta di codice molto semplice.</p>
<p>La stessa cosa in AEL potrebbe venire espressa così:</p>
<pre>context context-stupido =&gt; {
   111 =&gt; {
      Wait(3)
      Answer();
      Playback(benvenuto)
      MusicOnHold();
   };
   h =&gt; {
      NoCDR();
      Hangup();
   };
};</pre>
<p>Il codice AEL si presenta meglio e risulta più chiaro e leggibile rispetto alla versione standard. Forse non così tanto come in questo esempio così banale, ma se il dialplan dovesse ingrossarsi, ciò diventerebbe immediatamente evidente.</p>
<p>In AEL un context viene definito come un blocco di codice, esattamente come in buona parte dei più comuni linguaggi di programmazione, compreso cioè fra parentesi graffe, costituito a sua volta da un insieme di blocchi relativi ad extensions. E sempre come nei più comuni linguaggi di programmazione, ciascuna linea (statement) termina con un segno di &#8220;punto e virgola&#8221; (semi-colon).</p>
<p>Nel context di esempio la extension 333, dopo aver atteso 3 secondi prima che la controparte ottenga risposta, emette un messaggio di benvenuto e successivamente attiva la applicazione MusicOnHold, mentre la extension h termina la chiamata assicurandosi che i relativi dettagli non vengano registrati (NoCDR).</p>
<p><strong>Includes</strong><br />
I contexts possono venire inclusi in altri contesti. Tutti i contexts inclusi sono elencati in un singolo blocco.</p>
<pre>context default {
    includes {
         locali;
         extraurbane;
         internazionali;
    };
};</pre>
<p>Dopo aver modificato il file extensions.ael, occorre impartire, nella CLI di Asterisk il comando &#8220;ael reload&#8221; per rendere operative le modifiche (conformemente ad uno stile comune a tanti altri moduli).</p>
<p><strong>Variabili</strong><br />
Le variabili in Asterisk non sono tipizzate, pertanto, per definire una variabile, basta specificarla assegnandole un valore.</p>
<p>Le variabili globali vengono impostate nel loro specifico blocco.</p>
<pre>globals {
    CONSOLE=Console/dsp;
    TRUNK=Zap/g2;
};</pre>
<p>Le variabili (locali) possono essere impostate nelle extensions.</p>
<pre>context foo {
    555 =&gt; {
         x=5;
         y=quiquoqua;
         quoziente=10/2
         NoOp(x vale ${x} ed y vale ${y} mentre quoziente vale ${quoziente} !);
    };
};</pre>
<p><strong>MACRO</strong><br />
Come la scrittura dei contexts, la scrittura delle MACRO è altrettanto semplice.<br />
Le MACRO sono un po&#8217; come le functioni o i metodi e vengono definite tramite la keyword &#8220;macro&#8221;, seguita da eventuali argomenti racchiusi tra parentesi tonde.</p>
<pre>macro musica-di-attesa () {
   MusicOnHold();
};</pre>
<p>equivale alla MACRO nel tipico stile di extensions.conf:<br />
<code><br />
[macro-musica-di-attesa]<br />
exten =&gt; s,1,MusicOnHold()<br />
</code><br />
Gli argumenti passati alla MACRO vengono quindi riferiti dallo stesso nome.</p>
<pre>macro std-exten( ext , dev ) {
       Dial(${dev}/${ext},20);
       switch(${DIALSTATUS) {
       case BUSY:
               Voicemail(b${ext});
               break;
       default:
               Voicemail(u${ext});

       };
};</pre>
<p>Una MACRO viene invocata in AEL tramite un simbolo di &#8220;ampersand&#8221; (&amp;) seguito dal nome della MACRO e gli argomenti tra parentesi tonde, o parentesi tonde vuote in assenza di argomenti.<br />
Ad esempio, se combinassimo il context con la MACRO visti entrambi in precedenza, la cosa apparirebbe così:</p>
<pre>context context-stupido =&gt; {
   111 =&gt; {
      Wait(3)
      Answer();
      Playback(benvenuto)
      &amp;musica-di-attesa();
  };
  h =&gt; {
    NoCDR();
    Hangup();
  };
};
macro musica-di-attesa () {
   MusicOnHold();
};</pre>
<p><strong>Lo statement catch</strong> nelle MACRO<br />
È spesso motivo di confusione tra i neo utenti di AEL il modo di usare extensions speciali come h, t o i in una MACRO.<br />
Lo si fa utilizzando lo statement catch come nell&#8217;esempio seguente (un blocco catch può venire specificato per catturare le estensions speciali.</p>
<pre>macro std-exten( ext , dev ) {
       Dial(${dev}/${ext},20);
       switch(${DIALSTATUS) {
       case BUSY:
               Voicemail(b${ext});
               break;
       default:
               Voicemail(u${ext});

       };
       catch a {
               VoiceMailMain(${ext});
               return;
       };
};</pre>
<p>Ricordiamo che in questo caso la extension a (abort) verrebbe raggiunta premendo * (asterisco).</p>
<pre>macro musica-di-attesa () {
   MusicOnHold();
   catch h {
      NoCDR();
      Hangup();
   };
};</pre>
<p><strong>Labels e GoTo</strong><br />
Anche l&#8217;uso delle labels in AEL è più intuitivo.<br />
Una label la si specifica facendola seguire da un simbolo di due punti (colon), equindi usando lo statement goto per saltare ad essa. Ciò risulta valido sia per i contexts che per le MACRO.</p>
<p>Si consideri il seguente esempio in sintassi standard:<br />
<code><br />
[esempio-label]<br />
exten =&gt; 111,1,Set(COUNT=0)<br />
exten =&gt; 111,n(incremento),Set(COUNT=$[${COUNT}+1])<br />
exten =&gt; 111,n,GotoIf($["${COUNT}"&gt;"5"]?4:5)<br />
exten =&gt; 111,n,Goto(termine)<br />
exten =&gt; 111,n,SayDigits(${COUNT})<br />
exten =&gt; 111,n,Goto(incremento)<br />
exten =&gt; 111,n(termine),Hangup()<br />
exten =&gt; h,1,NoCDR()<br />
exten =&gt; h,n,Hangup()<br />
</code><br />
Si tratta evidentemente di un contatore, che incrementa una variabile fino a 5 e quindi salta alla extension h terminando la chiamata. Ha due labels: incremento e termine.<br />
Appare un po&#8217; confuso, e in particolare la ripetizione di &#8220;exten =&gt; 111,n&#8221; la si sospetta inutile.</p>
<p>Lo stesso codice in AEL potrebbe essere espresso come segue:</p>
<pre>context esempio-label {

111 =&gt; {
   Set(COUNT=0);
   incremento:
      Set(COUNT=$[${COUNT}+1]);
      if("${COUNT}"&gt;"5") {
      goto termine;
   };
   SayDigits(${COUNT});
   goto incremento;
   termine:
      Hangup();
   };

   h =&gt; {
      NoCDR();
      Hangup();
   };
};</pre>
<p>Certamente ora appare meglio organizzato, facile da leggere e da comprendere. In altri termini, più professionale.</p>
<p>Lo statement &#8220;goto label&#8221; segue lo stesso comportamento della applicazione Goto(), ad eccezione del fatto che l&#8217;ultimo valore deve consistere in una label. De la label non esistesse, si otterrebbe un errore di run-time. Se invece la label esiste, ma in una differente extension, occorre specificare il nome della extension name oltre alla label nel goto; se la label si trovasse in un context differente, occorrerebbe specificare context|extension|label.</p>
<pre>context esempio-goto {
    s =&gt; {
        inizio:
        NoOp(Loop Infinito!);
        Wait(1);
        goto inizio;    // va alla label nella stessa extension
    };
    3 =&gt; {
            goto s|inizio;   // va alla label in una extension differente
    };
    4 =&gt; {
            goto esempio-goto|s|inizio;  // va alla label in una extension differente dello stesso context
    };
};

context esempio-goto2 {
     s =&gt;  {
         fine:
         goto esempio-goto|s|inizio;   // va alla label in un context differente
     };
};</pre>
<p><strong>Strutture condizionali</strong><br />
In precedenza si è fatto uso dello statement if, ancora qualcosa che viene usato in tutti i linguaggi di programmazione.<br />
Si tenga conto che avendo una causola &#8220;else&#8221;, occorre necessariamente mettere delle parentesi graffe a delimitare la porzione non-else dello statement if.<br />
Analogamente allo statement &#8220;if&#8221;, AEL supporta lo statements &#8220;switch&#8221;.</p>
<pre>context conditional {
    _8XXX =&gt; {
         Dial(SIP/${EXTEN});
         if ("${DIALSTATUS}" = "BUSY") {
              Voicemail(${EXTEN}|b);
         } else {
              Voicemail(${EXTEN}|u);
         }
    };
    _777X =&gt; {
         switch (${EXTEN}) {
              pattern N11:
                   NoOp(You called a N11 number-- ${EXTEN});
                   break;
              case 7771:
                   NoOp(You called 7771!);
                   break;
              case 7772:
                   NoOp(You called 7772!);
                   break;
              case 7773:
                   NoOp(You called 7773!);
                   // fall thru-
              default:
                   NoOp(In the default clause!);
         };
    };
};</pre>
<p><strong>Loops</strong><br />
AEL possiede una propria implementazione di strutture iterative, come i loops &#8220;for&#8221; e &#8220;while&#8221; .</p>
<pre>context cicli {
    1 =&gt; {
         for (x=0; ${x} &lt; 3; x=${x} + 1) {
              Verbose(x vale ${x} !);
         }
    }
    2 =&gt; {
         y=10;
         while (${y} &gt;= 0) {
              Verbose(y vale ${y} !);
              y=${y}-1;
         }
    }
}</pre>
<p><strong>AEL v.2</strong><br />
AEL v.2, che è la versione più recente di AEL, ha esteso il linguaggio all&#8217;uso di una sintassi più flessibile (lo strano vincolo del posizionamento della parentesi graffa aperta sembrerebbe non avere più senso), fornendo inoltre messaggi di errore più comprensibili, ed alcune funzionalità fin qui mancanti.</p>
<p>AEL2 offre differenti modi per esprimere la stessa cosa. E così, una serie di scelte può venire annidata così:</p>
<pre>ifTime(*|*|20-25|dec)
{
       Playback(auguri/natale);
}
else
{
       ifTime(*|*|31|dec)
       {
                Playback(auguri/fineanno);
       }
       else
       {
               ifTime(*|*|1|jan)
               {
                       Playback(auguri/nuovoanno);
               }
               else
               {
                       ifTime(*|*|14|feb)
                       {
                               Playback(auguri/sanvalentino);
                               else {Playback(benvenuti); };
                       }
               }
        }
}</pre>
<p>Oppure espressa in forma equivalente così:</p>
<pre>ifTime(*|*|20-25|dec) {
               Playback(auguri/natale);
}
else ifTime(*|*|31|dec) {
               Playback(auguri/fineanno);
}
else ifTime(*|*|1|jan) {
               Playback(auguri/nuovoanno);
}
else ifTime(*|*|14|feb) {
               Playback(auguri/sanvalentino);
}
else {
               Playback(benvenuti);
}</pre>
<p><strong>Jump</strong><br />
Per richiamare una diversa extension (oppure, in uno statement switch, un altro &#8220;case&#8221;), si usa lo statement &#8220;jump&#8221;:</p>
<pre>context incoming {
   s =&gt; {
        NoOp(Qui viene gestita la chiamata);
   };
   0437945876 =&gt; jump s; // vengono accettate le chiamate PSTN destinate a tale numero
};

context home-test {
   999 =&gt; jump s@incoming; // 999 serve a simulare una chiamata in ingresso
};</pre>
<p><strong>Considerazioni finali</strong><br />
Per concludere questa breve incursione nel mondo di AEL, occorre ammettere che è piuttosto strano che esso non sia stato accolto ed adottato dalla comunità Asterisk come meriterebbe, e che la maggior parte dei membri della stessa continuino a combattere con la sintassi standard per scrivere dialplans anche complessi, compito che diventa progressivamente più arduo se il dialplan cresce.<br />
Apprendere AEL è molto semplice e coloro che conoscessero, oltre alla sintassi standard, anche un qualsiasi linguaggio di programmazione, potrebbero passare tranquillamente ad AEL in una manciata di ore, acquisendo in cambio notevoli vantaggi.</p>
<p>Come ultima indicazione, non bisognerebbe inserire nuovo codice in /etc/extensions.ael senza prima averlo testato con il tool aelparse.</p>
<p>Il tool aelparse viene compilato a partire dal relativo codice presente nella directory utils/ dei sorgenti di Asterisk.<br />
Si tratta di un eseguibile stand-alone che prevede le opzioni -d, -w, -q, e -n.</p>
<ul>
<li><strong>-d</strong>: Usando tale opzione, anziché leggere il file extensions.ael2 o extensions.ael da /etc/asterisk (o dalla directory deputata a contenere i files di configurazione) aelparse esamina la directory corrente. Ciò risulta molto utile per poter testare il dialplan senza compromettere l&#8217;ambiente di produzione.</li>
</ul>
<ul>
<li> <strong>-w</strong>: Convert il file dialplan di input (extensions.ael2) nel formato extensions.conf, ed archivia tale file nella directory corrente col nome di &#8220;extensions.conf.aeldump&#8221;.<br />
A cosa dovrebbe mai servire? Be, potreste prendere tale file ed utilizzarlo su una versione 1.2 o precedente di Asterisk, pertanto senza dover più programmare dialplans nel formato extensions.conf, anche continuando ad utilizzare vecchie versioni.</li>
</ul>
<ul>
<li> <strong>-n</strong>: Non visualizza le chiamate di funzione necessarie a costruire le extensions in asterisk.</li>
</ul>
<ul>
<li> <strong>-q</strong>: (implica -n). Visualizza solamente messaggi di warning ed errore.</li>
</ul>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="Introduzione ad Asterisk AEL"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/asterisk/introduzione-ad-asterisk-ael"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2010-08-26 09:08:20"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;AEL è un acronimo che sta per Asterisk Extensions Language. Il suo scopo è quello di rendere la stesura dei dialplans più semplice rispetto a quanto avviene normalmente utilizzando la tradizionale sintassi di extensions.conf.&lt;span id=&quot;more-1670&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;La sintassi standard è falsamente user friendly, rendendo difficoltoso redigere dialplans complessi, ed, molto spesso, ancora più difficoltoso interpretarli.&lt;br /&gt;
AEL invece rende la scrittura di un dialplan una attività più semplice e rapida, specialmente nel caso in cui sistemista Asterisk provenga dal mondo IT, dato che la sua sintassi lo rende simile ad uno dei tanti linguaggi di programmazione con cui avrà probabilmente avuto familiarità.&lt;br /&gt;
AEL è infatti concepito per fornire un linguaggio di programmazione per la scrittura di un dialplan per Asterisk.&lt;/p&gt;
&lt;p&gt;Il parser AEL (pbx_ael.so) è totalmente separato dal modulo che effettua il parsing di extensions.conf (pbx_config.so).&lt;br /&gt;
Per usare AEL, è necessario solamente che il modulo pbx_ael.so venga caricato da Asterisk. Ciò avviene automaticamente impostando &amp;#8216;autoload=yes&amp;#8217; in /etc/asterisk/modules.conf.&lt;br /&gt;
Una volta che il modulo è caricato, ricerca il file &amp;#8220;extensions.ael&amp;#8221; in /etc/asterisk/.&lt;/p&gt;
&lt;p&gt;Extensions.conf ed extensions.ael possono operare in sinergia.&lt;br /&gt;
Alcuni utenti preferiscono ad esempio mantenere extensions.conf per le features configurate nella sezione &amp;#8216;general&amp;#8217;.&lt;/p&gt;
&lt;p&gt;Ecco alcune indicazioni che spero possano riuscire ad invogliare qualcuno ad iniziare a scrivere in AEL.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Contesti&lt;/strong&gt;&lt;br /&gt;
Un contesto (context) in AEL rappresenta un set di extensions esattamente nella stessa maniera in cui lo fa in extensions.conf.&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
context default {&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;};&lt;/p&gt;
&lt;p&gt;NOTA: La parentesi graffa aperta deve essere usata come nello schema precedente. Spostarla sulla linea seguente può avere conseguenze imprevedibili!&lt;/p&gt;
&lt;p&gt;Se il file extensions.ael non esistesse nella directory /etc/asterisk, basta crearlo assegnandone la opportuna proprietà all&amp;#8217;utente con cui viene eseguito Asterisk. Può essere reso normalmente leggibile per tutti gli altri utenti.&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# touch /etc/asterisk/extensions.ael&lt;br /&gt;
# chown asterisk:asterisk /etc/asterisk/extensions.ael&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Per iniziare, se considerassimo, in extensions.conf, un context tipo il seguente:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
[context-stupido]&lt;br /&gt;
exten =&amp;gt; 333,1,Wait(3)&lt;br /&gt;
exten =&amp;gt; 333,n,Answer()&lt;br /&gt;
exten =&amp;gt; 333,n,Playback(benvenuto)&lt;br /&gt;
exten =&amp;gt; 333,n,MusicOnHold()&lt;br /&gt;
exten =&amp;gt; h,1,NoCDR()&lt;br /&gt;
exten =&amp;gt; h,n,Hangup()&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Potremmo facilmente dedurne che la ripetizione di &amp;#8220;exten =&amp;gt; 333,&amp;#8230;&amp;#8221; è un po&amp;#8217; noiosa e sarebbe auspicabile non fosse necessaria. E che la sua presenza aggiunge inoltre una certa complessità visiva al codice, anche se si tratta di codice molto semplice.&lt;/p&gt;
&lt;p&gt;La stessa cosa in AEL potrebbe venire espressa così:&lt;/p&gt;
&lt;pre&gt;context context-stupido =&amp;gt; {
   111 =&amp;gt; {
      Wait(3)
      Answer();
      Playback(benvenuto)
      MusicOnHold();
   };
   h =&amp;gt; {
      NoCDR();
      Hangup();
   };
};&lt;/pre&gt;
&lt;p&gt;Il codice AEL si presenta meglio e risulta più chiaro e leggibile rispetto alla versione standard. Forse non così tanto come in questo esempio così banale, ma se il dialplan dovesse ingrossarsi, ciò diventerebbe immediatamente evidente.&lt;/p&gt;
&lt;p&gt;In AEL un context viene definito come un blocco di codice, esattamente come in buona parte dei più comuni linguaggi di programmazione, compreso cioè fra parentesi graffe, costituito a sua volta da un insieme di blocchi relativi ad extensions. E sempre come nei più comuni linguaggi di programmazione, ciascuna linea (statement) termina con un segno di &amp;#8220;punto e virgola&amp;#8221; (semi-colon).&lt;/p&gt;
&lt;p&gt;Nel context di esempio la extension 333, dopo aver atteso 3 secondi prima che la controparte ottenga risposta, emette un messaggio di benvenuto e successivamente attiva la applicazione MusicOnHold, mentre la extension h termina la chiamata assicurandosi che i relativi dettagli non vengano registrati (NoCDR).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Includes&lt;/strong&gt;&lt;br /&gt;
I contexts possono venire inclusi in altri contesti. Tutti i contexts inclusi sono elencati in un singolo blocco.&lt;/p&gt;
&lt;pre&gt;context default {
    includes {
         locali;
         extraurbane;
         internazionali;
    };
};&lt;/pre&gt;
&lt;p&gt;Dopo aver modificato il file extensions.ael, occorre impartire, nella CLI di Asterisk il comando &amp;#8220;ael reload&amp;#8221; per rendere operative le modifiche (conformemente ad uno stile comune a tanti altri moduli).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Variabili&lt;/strong&gt;&lt;br /&gt;
Le variabili in Asterisk non sono tipizzate, pertanto, per definire una variabile, basta specificarla assegnandole un valore.&lt;/p&gt;
&lt;p&gt;Le variabili globali vengono impostate nel loro specifico blocco.&lt;/p&gt;
&lt;pre&gt;globals {
    CONSOLE=Console/dsp;
    TRUNK=Zap/g2;
};&lt;/pre&gt;
&lt;p&gt;Le variabili (locali) possono essere impostate nelle extensions.&lt;/p&gt;
&lt;pre&gt;context foo {
    555 =&amp;gt; {
         x=5;
         y=quiquoqua;
         quoziente=10/2
         NoOp(x vale ${x} ed y vale ${y} mentre quoziente vale ${quoziente} !);
    };
};&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;MACRO&lt;/strong&gt;&lt;br /&gt;
Come la scrittura dei contexts, la scrittura delle MACRO è altrettanto semplice.&lt;br /&gt;
Le MACRO sono un po&amp;#8217; come le functioni o i metodi e vengono definite tramite la keyword &amp;#8220;macro&amp;#8221;, seguita da eventuali argomenti racchiusi tra parentesi tonde.&lt;/p&gt;
&lt;pre&gt;macro musica-di-attesa () {
   MusicOnHold();
};&lt;/pre&gt;
&lt;p&gt;equivale alla MACRO nel tipico stile di extensions.conf:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
[macro-musica-di-attesa]&lt;br /&gt;
exten =&amp;gt; s,1,MusicOnHold()&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Gli argumenti passati alla MACRO vengono quindi riferiti dallo stesso nome.&lt;/p&gt;
&lt;pre&gt;macro std-exten( ext , dev ) {
       Dial(${dev}/${ext},20);
       switch(${DIALSTATUS) {
       case BUSY:
               Voicemail(b${ext});
               break;
       default:
               Voicemail(u${ext});

       };
};&lt;/pre&gt;
&lt;p&gt;Una MACRO viene invocata in AEL tramite un simbolo di &amp;#8220;ampersand&amp;#8221; (&amp;amp;) seguito dal nome della MACRO e gli argomenti tra parentesi tonde, o parentesi tonde vuote in assenza di argomenti.&lt;br /&gt;
Ad esempio, se combinassimo il context con la MACRO visti entrambi in precedenza, la cosa apparirebbe così:&lt;/p&gt;
&lt;pre&gt;context context-stupido =&amp;gt; {
   111 =&amp;gt; {
      Wait(3)
      Answer();
      Playback(benvenuto)
      &amp;amp;musica-di-attesa();
  };
  h =&amp;gt; {
    NoCDR();
    Hangup();
  };
};
macro musica-di-attesa () {
   MusicOnHold();
};&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Lo statement catch&lt;/strong&gt; nelle MACRO&lt;br /&gt;
È spesso motivo di confusione tra i neo utenti di AEL il modo di usare extensions speciali come h, t o i in una MACRO.&lt;br /&gt;
Lo si fa utilizzando lo statement catch come nell&amp;#8217;esempio seguente (un blocco catch può venire specificato per catturare le estensions speciali.&lt;/p&gt;
&lt;pre&gt;macro std-exten( ext , dev ) {
       Dial(${dev}/${ext},20);
       switch(${DIALSTATUS) {
       case BUSY:
               Voicemail(b${ext});
               break;
       default:
               Voicemail(u${ext});

       };
       catch a {
               VoiceMailMain(${ext});
               return;
       };
};&lt;/pre&gt;
&lt;p&gt;Ricordiamo che in questo caso la extension a (abort) verrebbe raggiunta premendo * (asterisco).&lt;/p&gt;
&lt;pre&gt;macro musica-di-attesa () {
   MusicOnHold();
   catch h {
      NoCDR();
      Hangup();
   };
};&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Labels e GoTo&lt;/strong&gt;&lt;br /&gt;
Anche l&amp;#8217;uso delle labels in AEL è più intuitivo.&lt;br /&gt;
Una label la si specifica facendola seguire da un simbolo di due punti (colon), equindi usando lo statement goto per saltare ad essa. Ciò risulta valido sia per i contexts che per le MACRO.&lt;/p&gt;
&lt;p&gt;Si consideri il seguente esempio in sintassi standard:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
[esempio-label]&lt;br /&gt;
exten =&amp;gt; 111,1,Set(COUNT=0)&lt;br /&gt;
exten =&amp;gt; 111,n(incremento),Set(COUNT=$[${COUNT}+1])&lt;br /&gt;
exten =&amp;gt; 111,n,GotoIf($[&quot;${COUNT}&quot;&amp;gt;&quot;5&quot;]?4:5)&lt;br /&gt;
exten =&amp;gt; 111,n,Goto(termine)&lt;br /&gt;
exten =&amp;gt; 111,n,SayDigits(${COUNT})&lt;br /&gt;
exten =&amp;gt; 111,n,Goto(incremento)&lt;br /&gt;
exten =&amp;gt; 111,n(termine),Hangup()&lt;br /&gt;
exten =&amp;gt; h,1,NoCDR()&lt;br /&gt;
exten =&amp;gt; h,n,Hangup()&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Si tratta evidentemente di un contatore, che incrementa una variabile fino a 5 e quindi salta alla extension h terminando la chiamata. Ha due labels: incremento e termine.&lt;br /&gt;
Appare un po&amp;#8217; confuso, e in particolare la ripetizione di &amp;#8220;exten =&amp;gt; 111,n&amp;#8221; la si sospetta inutile.&lt;/p&gt;
&lt;p&gt;Lo stesso codice in AEL potrebbe essere espresso come segue:&lt;/p&gt;
&lt;pre&gt;context esempio-label {

111 =&amp;gt; {
   Set(COUNT=0);
   incremento:
      Set(COUNT=$[${COUNT}+1]);
      if(&quot;${COUNT}&quot;&amp;gt;&quot;5&quot;) {
      goto termine;
   };
   SayDigits(${COUNT});
   goto incremento;
   termine:
      Hangup();
   };

   h =&amp;gt; {
      NoCDR();
      Hangup();
   };
};&lt;/pre&gt;
&lt;p&gt;Certamente ora appare meglio organizzato, facile da leggere e da comprendere. In altri termini, più professionale.&lt;/p&gt;
&lt;p&gt;Lo statement &amp;#8220;goto label&amp;#8221; segue lo stesso comportamento della applicazione Goto(), ad eccezione del fatto che l&amp;#8217;ultimo valore deve consistere in una label. De la label non esistesse, si otterrebbe un errore di run-time. Se invece la label esiste, ma in una differente extension, occorre specificare il nome della extension name oltre alla label nel goto; se la label si trovasse in un context differente, occorrerebbe specificare context|extension|label.&lt;/p&gt;
&lt;pre&gt;context esempio-goto {
    s =&amp;gt; {
        inizio:
        NoOp(Loop Infinito!);
        Wait(1);
        goto inizio;    // va alla label nella stessa extension
    };
    3 =&amp;gt; {
            goto s|inizio;   // va alla label in una extension differente
    };
    4 =&amp;gt; {
            goto esempio-goto|s|inizio;  // va alla label in una extension differente dello stesso context
    };
};

context esempio-goto2 {
     s =&amp;gt;  {
         fine:
         goto esempio-goto|s|inizio;   // va alla label in un context differente
     };
};&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Strutture condizionali&lt;/strong&gt;&lt;br /&gt;
In precedenza si è fatto uso dello statement if, ancora qualcosa che viene usato in tutti i linguaggi di programmazione.&lt;br /&gt;
Si tenga conto che avendo una causola &amp;#8220;else&amp;#8221;, occorre necessariamente mettere delle parentesi graffe a delimitare la porzione non-else dello statement if.&lt;br /&gt;
Analogamente allo statement &amp;#8220;if&amp;#8221;, AEL supporta lo statements &amp;#8220;switch&amp;#8221;.&lt;/p&gt;
&lt;pre&gt;context conditional {
    _8XXX =&amp;gt; {
         Dial(SIP/${EXTEN});
         if (&quot;${DIALSTATUS}&quot; = &quot;BUSY&quot;) {
              Voicemail(${EXTEN}|b);
         } else {
              Voicemail(${EXTEN}|u);
         }
    };
    _777X =&amp;gt; {
         switch (${EXTEN}) {
              pattern N11:
                   NoOp(You called a N11 number-- ${EXTEN});
                   break;
              case 7771:
                   NoOp(You called 7771!);
                   break;
              case 7772:
                   NoOp(You called 7772!);
                   break;
              case 7773:
                   NoOp(You called 7773!);
                   // fall thru-
              default:
                   NoOp(In the default clause!);
         };
    };
};&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Loops&lt;/strong&gt;&lt;br /&gt;
AEL possiede una propria implementazione di strutture iterative, come i loops &amp;#8220;for&amp;#8221; e &amp;#8220;while&amp;#8221; .&lt;/p&gt;
&lt;pre&gt;context cicli {
    1 =&amp;gt; {
         for (x=0; ${x} &amp;lt; 3; x=${x} + 1) {
              Verbose(x vale ${x} !);
         }
    }
    2 =&amp;gt; {
         y=10;
         while (${y} &amp;gt;= 0) {
              Verbose(y vale ${y} !);
              y=${y}-1;
         }
    }
}&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;AEL v.2&lt;/strong&gt;&lt;br /&gt;
AEL v.2, che è la versione più recente di AEL, ha esteso il linguaggio all&amp;#8217;uso di una sintassi più flessibile (lo strano vincolo del posizionamento della parentesi graffa aperta sembrerebbe non avere più senso), fornendo inoltre messaggi di errore più comprensibili, ed alcune funzionalità fin qui mancanti.&lt;/p&gt;
&lt;p&gt;AEL2 offre differenti modi per esprimere la stessa cosa. E così, una serie di scelte può venire annidata così:&lt;/p&gt;
&lt;pre&gt;ifTime(*|*|20-25|dec)
{
       Playback(auguri/natale);
}
else
{
       ifTime(*|*|31|dec)
       {
                Playback(auguri/fineanno);
       }
       else
       {
               ifTime(*|*|1|jan)
               {
                       Playback(auguri/nuovoanno);
               }
               else
               {
                       ifTime(*|*|14|feb)
                       {
                               Playback(auguri/sanvalentino);
                               else {Playback(benvenuti); };
                       }
               }
        }
}&lt;/pre&gt;
&lt;p&gt;Oppure espressa in forma equivalente così:&lt;/p&gt;
&lt;pre&gt;ifTime(*|*|20-25|dec) {
               Playback(auguri/natale);
}
else ifTime(*|*|31|dec) {
               Playback(auguri/fineanno);
}
else ifTime(*|*|1|jan) {
               Playback(auguri/nuovoanno);
}
else ifTime(*|*|14|feb) {
               Playback(auguri/sanvalentino);
}
else {
               Playback(benvenuti);
}&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Jump&lt;/strong&gt;&lt;br /&gt;
Per richiamare una diversa extension (oppure, in uno statement switch, un altro &amp;#8220;case&amp;#8221;), si usa lo statement &amp;#8220;jump&amp;#8221;:&lt;/p&gt;
&lt;pre&gt;context incoming {
   s =&amp;gt; {
        NoOp(Qui viene gestita la chiamata);
   };
   0437945876 =&amp;gt; jump s; // vengono accettate le chiamate PSTN destinate a tale numero
};

context home-test {
   999 =&amp;gt; jump s@incoming; // 999 serve a simulare una chiamata in ingresso
};&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Considerazioni finali&lt;/strong&gt;&lt;br /&gt;
Per concludere questa breve incursione nel mondo di AEL, occorre ammettere che è piuttosto strano che esso non sia stato accolto ed adottato dalla comunità Asterisk come meriterebbe, e che la maggior parte dei membri della stessa continuino a combattere con la sintassi standard per scrivere dialplans anche complessi, compito che diventa progressivamente più arduo se il dialplan cresce.&lt;br /&gt;
Apprendere AEL è molto semplice e coloro che conoscessero, oltre alla sintassi standard, anche un qualsiasi linguaggio di programmazione, potrebbero passare tranquillamente ad AEL in una manciata di ore, acquisendo in cambio notevoli vantaggi.&lt;/p&gt;
&lt;p&gt;Come ultima indicazione, non bisognerebbe inserire nuovo codice in /etc/extensions.ael senza prima averlo testato con il tool aelparse.&lt;/p&gt;
&lt;p&gt;Il tool aelparse viene compilato a partire dal relativo codice presente nella directory utils/ dei sorgenti di Asterisk.&lt;br /&gt;
Si tratta di un eseguibile stand-alone che prevede le opzioni -d, -w, -q, e -n.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;-d&lt;/strong&gt;: Usando tale opzione, anziché leggere il file extensions.ael2 o extensions.ael da /etc/asterisk (o dalla directory deputata a contenere i files di configurazione) aelparse esamina la directory corrente. Ciò risulta molto utile per poter testare il dialplan senza compromettere l&amp;#8217;ambiente di produzione.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; &lt;strong&gt;-w&lt;/strong&gt;: Convert il file dialplan di input (extensions.ael2) nel formato extensions.conf, ed archivia tale file nella directory corrente col nome di &amp;#8220;extensions.conf.aeldump&amp;#8221;.&lt;br /&gt;
A cosa dovrebbe mai servire? Be, potreste prendere tale file ed utilizzarlo su una versione 1.2 o precedente di Asterisk, pertanto senza dover più programmare dialplans nel formato extensions.conf, anche continuando ad utilizzare vecchie versioni.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; &lt;strong&gt;-n&lt;/strong&gt;: Non visualizza le chiamate di funzione necessarie a costruire le extensions in asterisk.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; &lt;strong&gt;-q&lt;/strong&gt;: (implica -n). Visualizza solamente messaggi di warning ed errore.&lt;/li&gt;
&lt;/ul&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/asterisk/introduzione-ad-asterisk-ael/feed</wfw:commentRss>
		</item>
		<item>
		<title>Made in Italy</title>
		<link>http://www.voipandhack.it/archives/societa/made-in-italy</link>
		<comments>http://www.voipandhack.it/archives/societa/made-in-italy#comments</comments>
		<pubDate>Tue, 24 Aug 2010 15:59:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Politica]]></category>

		<category><![CDATA[Società]]></category>

		<category><![CDATA[Assange]]></category>

		<category><![CDATA[boffo]]></category>

		<category><![CDATA[censura]]></category>

		<category><![CDATA[diritti digitali]]></category>

		<category><![CDATA[nsa]]></category>

		<category><![CDATA[security]]></category>

		<category><![CDATA[wikileaks]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1668</guid>
		<description><![CDATA[Ci sarebbe di che vantare una certa paternità, in puro stile &#8220;Made in Italy&#8221;, riguardo alle accuse di molestie e violenze sessuali di cui è stato fatto oggetto Julian Assange.
Sembra infatti una versione riveduta e corretta del &#8220;trattamento Boffo&#8221; di italica attualità.
A conforto dei cittadini svedesi, le loro istituzioni hanno avuto almeno la dignità di [...]]]></description>
			<content:encoded><![CDATA[<p>Ci sarebbe di che vantare una certa paternità, in puro stile &#8220;Made in Italy&#8221;, riguardo alle accuse di molestie e violenze sessuali di cui è stato fatto oggetto Julian Assange.<br />
Sembra infatti una versione riveduta e corretta del &#8220;trattamento Boffo&#8221; di italica attualità.<span id="more-1668"></span></p>
<p>A conforto dei cittadini svedesi, le loro istituzioni hanno avuto almeno la dignità di non prestarsi, se non forse per &#8220;atto dovuto&#8221; alla ridicolaggine di accuse pretestuose.<br />
Alla fine resta solo un dubbio: Feltri è anche consulente della NSA?</p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="Made in Italy"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/societa/made-in-italy"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2010-08-24 17:08:24"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;Ci sarebbe di che vantare una certa paternità, in puro stile &amp;#8220;Made in Italy&amp;#8221;, riguardo alle accuse di molestie e violenze sessuali di cui è stato fatto oggetto Julian Assange.&lt;br /&gt;
Sembra infatti una versione riveduta e corretta del &amp;#8220;trattamento Boffo&amp;#8221; di italica attualità.&lt;span id=&quot;more-1668&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;A conforto dei cittadini svedesi, le loro istituzioni hanno avuto almeno la dignità di non prestarsi, se non forse per &amp;#8220;atto dovuto&amp;#8221; alla ridicolaggine di accuse pretestuose.&lt;br /&gt;
Alla fine resta solo un dubbio: Feltri è anche consulente della NSA?&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/societa/made-in-italy/feed</wfw:commentRss>
		</item>
		<item>
		<title>Possibili utilizzi di Ntop</title>
		<link>http://www.voipandhack.it/archives/sicurezza/possibili-utilizzi-di-ntop</link>
		<comments>http://www.voipandhack.it/archives/sicurezza/possibili-utilizzi-di-ntop#comments</comments>
		<pubDate>Mon, 23 Aug 2010 08:59:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Sicurezza]]></category>

		<category><![CDATA[Tools]]></category>

		<category><![CDATA[internet]]></category>

		<category><![CDATA[ntop]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[security]]></category>

		<category><![CDATA[tcp-ip]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1665</guid>
		<description><![CDATA[Chi è che consuma la maggior parte della banda Internet nella mia rete?
Nel modo in cui si svolge il web browsing works, la maggior parte del traffico di solito avviene in ingresso da Internet (testo, immagini, sound, video), a fronte di una quantità di traffico in uscita molto modesta (richieste HTTP Get ed altri comandi). [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Chi è che consuma la maggior parte della banda Internet nella mia rete?</strong><br />
Nel modo in cui si svolge il web browsing works, la maggior parte del traffico di solito avviene in ingresso da Internet (testo, immagini, sound, video), a fronte di una quantità di traffico in uscita molto modesta (richieste HTTP Get ed altri comandi). Se si considera un utente che scarica grossi files (film piratati, immagini, porno, iso images), potrebbe inviare una unica piccola richiesta durante 20 minuti causando tuttavia il trasferimento di 650MB di dati in ingresso. <span id="more-1665"></span><br />
Pertanto, la banda cui saremo interessati in questo contesto è la banda che ciascun host nella rete locale consuma in ricezione.<br />
Per ottenere l&#8217;informazione desiderata, si può procedere come segue:</p>
<ol>
<li>Selezionare l&#8217;opzione di menu All Protocols -&gt; Traffic.</li>
<li>Nell&#8217;elenco a discesa a sinistra, Hosts, selezionare Local Only</li>
<li>Nell&#8217;elenco a discesa a destra, Data, selezionare Received Only</li>
<li>Cliccare sulla VLAN cui si è interessati oppure su ALL per osservare il traffico per tutte le VLANs.</li>
<li>Cliccare sulla intestazione della colonna Data per un ordinamento per dati e percentuale.</li>
</ol>
<p>Ribaltando questo concetto, se un host della rete locale sta inviando più traffico di quanto ne riceva, allora quell&#8217; host sta offrendo servizi &#8220;server&#8221;  di qualche tipo. Potrebbe trattarsi di un web server, un host P2P cha sta condividendo dei dati mentre altri ne stanno effettuando il download, un FTP server ecc.<br />
Un&#8217;altra pagina che può fornire rilevanti informazioni specifiche per il protocollo IP (ntop supporta IPX, AppleTalk ed altri protocolli) è la opzione di menu IP:Traffic Directions:Local to Remote, che esprime in una tabella, per ciascun host locale, la quantità di traffico inviato e/o ricevuto da remoto. Assicuriamoci sempre di effettuare l&#8217;ordinamento in base alla colonna Data.</p>
<p><strong>Quali Websites ottengono la maggior parte del traffico da parte della mia azienda?</strong><br />
Seguendo ancora la logica vista in precedenza, i websites più popolari sono quelli che ricevono il maggior ammontare di dati da parte degli utenti locali.<br />
Come esempio, si supponga che ognuno, arrivando in ufficio, si colleghi a Google per consultare la propria email. Di conseguenza gli indirizzi IP che si riferiscono al servizio Gmail riceverà molte richieste. Per generare un elenco di tali websites, si può procedere come segue:</p>
<ol>
<li>Selezionare l&#8217;opzione di menu All Protocols -&gt; Traffic.</li>
<li>Nell&#8217;elenco a discesa a sinistra, Hosts, selezionare Remote Only</li>
<li>Nell&#8217;elenco a discesa a destra, Data, selezionare Received Only</li>
<li>Cliccare sulla VLAN cui si è interessati oppure su ALL per osservare il traffico per tutte le VLANs.</li>
<li>Cliccare sulla intestazione della colonna Data per un ordinamento per dati e percentuale.</li>
</ol>
<p><strong><br />
Quale traffico proveniente da Websites consuma la maggior parte della mia banda?</strong><br />
Si potrebbe necessitare di tale informazione allo scopo di implementare il caching sul proxy server o per bloccare l&#8217;accesso a noti divoratori di banda come i siti di download. Ciò cui siamo interessati è quanti dati l&#8217;host remoto abbia inviato alla nostra rete.</p>
<ol>
<li>Selezionare l&#8217;opzione di menu All Protocols -&gt; Traffic.</li>
<li>Nell&#8217;elenco a discesa a sinistra, Hosts, selezionare Remote Only</li>
<li>Nell&#8217;elenco a discesa a destra, Data, selezionare Sent Only</li>
<li>Cliccare sulla VLAN cui si è interessati oppure su ALL per osservare il traffico per tutte le VLANs.</li>
<li>Cliccare sulla intestazione della colonna Data per un ordinamento per dati e percentuale.</li>
</ol>
<p>I dati sul traffico remoto possono anche essere ottenuti specificamente per il protocollo IP scegliendo IP -&gt; Traffic Directions -&gt; Remote to Local e quindi effettuare l&#8217;ordinamento per Data Sent o Data Received.<br />
<strong><br />
Quali applicazioni vengono usate?</strong><br />
In questo contesto &#8220;applicazioni&#8221; si riferisce ad applicazioni di rete, essenzialmente identificate dalle porte che utilizzano. DNS ad esempio è una applicazione il cui componente server è sempre in ascolto sulla porta 53 UDP. Sebbene la maggior parte dei programmi peer-to-peer per default usa uno specifico range di porte, essi possono anche usare le porte di altri protocolli noti, come http (80), per cui ntop fa riferimento alle informazioni contenute negli header per rilevare i programmi p2p.<br />
Le seguenti pagine di ntop pages forniscono tale informazione:</p>
<ul>
<li>Global TCP/UDP Protocol Distribution, accessibile dalla pagina Summary -&gt; Traffic, mostra i grafici relativi alle più note applicazioni rilevate dal momento in cui ntop è stato avviato.</li>
</ul>
<ul>
<li>Accumulated and Historical Views in fondo alla pagina Summary -&gt; Traffic offre pure un grafico del consumo di banda per intervallo di tempo relativo a ciascuna applicazione (protocollo).</li>
</ul>
<ul>
<li>La pagina TCP/UDP: Local Protocol Usage accessibile dalla opzione di menu IP -&gt; Local -&gt; Ports Used elenca le applicazioni servite ed usate dagli hosts locali. Per ciascuna applicazione vengono elencati i nomi o gli indirizzi IP dei clients locali così come dei server locali.</li>
</ul>
<p><strong>In che ora del giorno la rete viene maggiormente utilizzata?</strong><br />
Per rispondere a questa domanda, basta dare una occhiata alla pagina Summary -&gt; Network Load. Nello specifico al grafico Last Day.</p>
<p><strong>Effettuare un inventario della rete</strong><br />
Nel caso si volesse individuare quali devices eseguano quali servizi di rete, chi siano DHCP, DNS, Web servers, quali hosts siano routers etc., la pagina cui fare riferimento è Local Hosts Characterization, accessibile  IP -&gt; Local -&gt; Hosts Characterization.</p>
<p><strong>Esportazione dei dati di traffico</strong><br />
Potrebbe essere desiderabile scaricare i dati correnti che ntop ha nelle sue strutture di memoria in modo da potervi applicare altri tools di analisi. Per fare ciò, occorre cliccare Utils -&gt; Data Dump per ottenere la schermata seguente. Si può effettuare un dump dei dati relativi a hosts, subnets, host matrix anche per interfaccia. Inoltre il dump dei dati è ottenibile in differenti formati selezionabili dall&#8217;elenco a discesa.</p>
<p><img class="aligncenter size-full wp-image-1666" title="ntop-datadump" src="http://www.voipandhack.it/wp-content/uploads/2010/08/ntop-datadump.png" alt="ntop-datadump" width="500" height="530" /></p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="Possibili utilizzi di Ntop"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/sicurezza/possibili-utilizzi-di-ntop"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2010-08-23 10:08:00"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;&lt;strong&gt;Chi è che consuma la maggior parte della banda Internet nella mia rete?&lt;/strong&gt;&lt;br /&gt;
Nel modo in cui si svolge il web browsing works, la maggior parte del traffico di solito avviene in ingresso da Internet (testo, immagini, sound, video), a fronte di una quantità di traffico in uscita molto modesta (richieste HTTP Get ed altri comandi). Se si considera un utente che scarica grossi files (film piratati, immagini, porno, iso images), potrebbe inviare una unica piccola richiesta durante 20 minuti causando tuttavia il trasferimento di 650MB di dati in ingresso. &lt;span id=&quot;more-1665&quot;&gt;&lt;/span&gt;&lt;br /&gt;
Pertanto, la banda cui saremo interessati in questo contesto è la banda che ciascun host nella rete locale consuma in ricezione.&lt;br /&gt;
Per ottenere l&amp;#8217;informazione desiderata, si può procedere come segue:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Selezionare l&amp;#8217;opzione di menu All Protocols -&amp;gt; Traffic.&lt;/li&gt;
&lt;li&gt;Nell&amp;#8217;elenco a discesa a sinistra, Hosts, selezionare Local Only&lt;/li&gt;
&lt;li&gt;Nell&amp;#8217;elenco a discesa a destra, Data, selezionare Received Only&lt;/li&gt;
&lt;li&gt;Cliccare sulla VLAN cui si è interessati oppure su ALL per osservare il traffico per tutte le VLANs.&lt;/li&gt;
&lt;li&gt;Cliccare sulla intestazione della colonna Data per un ordinamento per dati e percentuale.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ribaltando questo concetto, se un host della rete locale sta inviando più traffico di quanto ne riceva, allora quell&amp;#8217; host sta offrendo servizi &amp;#8220;server&amp;#8221;  di qualche tipo. Potrebbe trattarsi di un web server, un host P2P cha sta condividendo dei dati mentre altri ne stanno effettuando il download, un FTP server ecc.&lt;br /&gt;
Un&amp;#8217;altra pagina che può fornire rilevanti informazioni specifiche per il protocollo IP (ntop supporta IPX, AppleTalk ed altri protocolli) è la opzione di menu IP:Traffic Directions:Local to Remote, che esprime in una tabella, per ciascun host locale, la quantità di traffico inviato e/o ricevuto da remoto. Assicuriamoci sempre di effettuare l&amp;#8217;ordinamento in base alla colonna Data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quali Websites ottengono la maggior parte del traffico da parte della mia azienda?&lt;/strong&gt;&lt;br /&gt;
Seguendo ancora la logica vista in precedenza, i websites più popolari sono quelli che ricevono il maggior ammontare di dati da parte degli utenti locali.&lt;br /&gt;
Come esempio, si supponga che ognuno, arrivando in ufficio, si colleghi a Google per consultare la propria email. Di conseguenza gli indirizzi IP che si riferiscono al servizio Gmail riceverà molte richieste. Per generare un elenco di tali websites, si può procedere come segue:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Selezionare l&amp;#8217;opzione di menu All Protocols -&amp;gt; Traffic.&lt;/li&gt;
&lt;li&gt;Nell&amp;#8217;elenco a discesa a sinistra, Hosts, selezionare Remote Only&lt;/li&gt;
&lt;li&gt;Nell&amp;#8217;elenco a discesa a destra, Data, selezionare Received Only&lt;/li&gt;
&lt;li&gt;Cliccare sulla VLAN cui si è interessati oppure su ALL per osservare il traffico per tutte le VLANs.&lt;/li&gt;
&lt;li&gt;Cliccare sulla intestazione della colonna Data per un ordinamento per dati e percentuale.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;&lt;br /&gt;
Quale traffico proveniente da Websites consuma la maggior parte della mia banda?&lt;/strong&gt;&lt;br /&gt;
Si potrebbe necessitare di tale informazione allo scopo di implementare il caching sul proxy server o per bloccare l&amp;#8217;accesso a noti divoratori di banda come i siti di download. Ciò cui siamo interessati è quanti dati l&amp;#8217;host remoto abbia inviato alla nostra rete.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Selezionare l&amp;#8217;opzione di menu All Protocols -&amp;gt; Traffic.&lt;/li&gt;
&lt;li&gt;Nell&amp;#8217;elenco a discesa a sinistra, Hosts, selezionare Remote Only&lt;/li&gt;
&lt;li&gt;Nell&amp;#8217;elenco a discesa a destra, Data, selezionare Sent Only&lt;/li&gt;
&lt;li&gt;Cliccare sulla VLAN cui si è interessati oppure su ALL per osservare il traffico per tutte le VLANs.&lt;/li&gt;
&lt;li&gt;Cliccare sulla intestazione della colonna Data per un ordinamento per dati e percentuale.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I dati sul traffico remoto possono anche essere ottenuti specificamente per il protocollo IP scegliendo IP -&amp;gt; Traffic Directions -&amp;gt; Remote to Local e quindi effettuare l&amp;#8217;ordinamento per Data Sent o Data Received.&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
Quali applicazioni vengono usate?&lt;/strong&gt;&lt;br /&gt;
In questo contesto &amp;#8220;applicazioni&amp;#8221; si riferisce ad applicazioni di rete, essenzialmente identificate dalle porte che utilizzano. DNS ad esempio è una applicazione il cui componente server è sempre in ascolto sulla porta 53 UDP. Sebbene la maggior parte dei programmi peer-to-peer per default usa uno specifico range di porte, essi possono anche usare le porte di altri protocolli noti, come http (80), per cui ntop fa riferimento alle informazioni contenute negli header per rilevare i programmi p2p.&lt;br /&gt;
Le seguenti pagine di ntop pages forniscono tale informazione:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Global TCP/UDP Protocol Distribution, accessibile dalla pagina Summary -&amp;gt; Traffic, mostra i grafici relativi alle più note applicazioni rilevate dal momento in cui ntop è stato avviato.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Accumulated and Historical Views in fondo alla pagina Summary -&amp;gt; Traffic offre pure un grafico del consumo di banda per intervallo di tempo relativo a ciascuna applicazione (protocollo).&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;La pagina TCP/UDP: Local Protocol Usage accessibile dalla opzione di menu IP -&amp;gt; Local -&amp;gt; Ports Used elenca le applicazioni servite ed usate dagli hosts locali. Per ciascuna applicazione vengono elencati i nomi o gli indirizzi IP dei clients locali così come dei server locali.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;In che ora del giorno la rete viene maggiormente utilizzata?&lt;/strong&gt;&lt;br /&gt;
Per rispondere a questa domanda, basta dare una occhiata alla pagina Summary -&amp;gt; Network Load. Nello specifico al grafico Last Day.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Effettuare un inventario della rete&lt;/strong&gt;&lt;br /&gt;
Nel caso si volesse individuare quali devices eseguano quali servizi di rete, chi siano DHCP, DNS, Web servers, quali hosts siano routers etc., la pagina cui fare riferimento è Local Hosts Characterization, accessibile  IP -&amp;gt; Local -&amp;gt; Hosts Characterization.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Esportazione dei dati di traffico&lt;/strong&gt;&lt;br /&gt;
Potrebbe essere desiderabile scaricare i dati correnti che ntop ha nelle sue strutture di memoria in modo da potervi applicare altri tools di analisi. Per fare ciò, occorre cliccare Utils -&amp;gt; Data Dump per ottenere la schermata seguente. Si può effettuare un dump dei dati relativi a hosts, subnets, host matrix anche per interfaccia. Inoltre il dump dei dati è ottenibile in differenti formati selezionabili dall&amp;#8217;elenco a discesa.&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1666&quot; title=&quot;ntop-datadump&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2010/08/ntop-datadump.png&quot; alt=&quot;ntop-datadump&quot; width=&quot;500&quot; height=&quot;530&quot; /&gt;&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/sicurezza/possibili-utilizzi-di-ntop/feed</wfw:commentRss>
		</item>
		<item>
		<title>Introduzione a Ntop - seconda parte</title>
		<link>http://www.voipandhack.it/archives/sicurezza/introduzione-a-ntop-seconda-parte</link>
		<comments>http://www.voipandhack.it/archives/sicurezza/introduzione-a-ntop-seconda-parte#comments</comments>
		<pubDate>Mon, 16 Aug 2010 15:04:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Hacking]]></category>

		<category><![CDATA[Sicurezza]]></category>

		<category><![CDATA[Tools]]></category>

		<category><![CDATA[ntop]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[security]]></category>

		<category><![CDATA[tcp-ip]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1661</guid>
		<description><![CDATA[Terminiamo l&#8217;esame dei menu di ntop e delle loro gerarchie.
IP:Summary:Traffic - Visualizza una tabella che elenca, per ciascun host (IP) visto, quanti dati tale host abbia trasferito, che percentuale del traffico totale dal momento in cui ntop è entrato in funzione rappresenti, e l&#8217;ammontare di traffico inviato per alcuni protocolli chiave TCP/IP  (FTP HTTP DNS, [...]]]></description>
			<content:encoded><![CDATA[<p>Terminiamo l&#8217;esame dei menu di ntop e delle loro gerarchie.</p>
<p><strong>IP:Summary:Traffic </strong>- Visualizza una tabella che elenca, per ciascun host (IP) visto, quanti dati tale host abbia trasferito, che percentuale del traffico totale dal momento in cui ntop è entrato in funzione rappresenti, e l&#8217;ammontare di traffico inviato per alcuni protocolli chiave TCP/IP  (FTP HTTP DNS, Telnet, NBios-IP Mail, DHCP-BOOTP SNMP NNTP, NFS/AFS, VoIP X11, SSH, Gnutella, Kazaa, WinMX, DC++, eDonkey, BitTorrent, Messenger, Other, IP).<span id="more-1661"></span><br />
Si può visualizzare questa informazione relativamente agli hosts locali, remoti o tutti gli hosts per i dati inviati, ricevuti o sia inviati che ricevuti sia per singola VLAN che per tutte le VLANs.<br />
<strong><br />
IP:Summary:Multicast</strong> - Visualizza una tabella di tutti i gruppi ed origini multicast e quanti dati ciascuna origine abbia inviato o quanti dati ciascun gruppo ha ricevuto.</p>
<p><strong>IP:Summary:Internet Domain</strong> - Visualizza statistiche di traffico per tutti i domini Internet (DNS). Per quanto riguarda TCP/IP, vengono mostrati i dati inviati/riecevuti in kilobytes o come una percentuale per TCP, UDP e per entrambi. Per quanto riguarda ICMP, viene mostrato il traffico inviato/ricevuto per IPv4 ed IPv6.</p>
<p><strong>IP:Summary:ASs</strong> - Visualizza un elenco degli Autonomous Systems BGP che il vostro traffico attraversa.</p>
<p><strong>IP:Summary:Host Communities</strong> - Fornisce informazioni sul traffico aggregato di gruppi predefiniti di host. Cliccando su un qualsiasi cluster si ottengono le statistiche di traffico degli hosts componenti.<br />
<strong><br />
IP:Summary:Distribution</strong> - Visualizza un grafico a torta che rappresenta l&#8217;ammontare relativo a traffico locale, locale verso remoto, e remoto verso locale. Per ciascuna di queste categorie di traffico, una tabella fornisce maggiori dettagli ulteriormente suddivisa per protocollo IP.</p>
<p><strong>IP:Traffic Directions:Local to Local</strong> - Visualizza per ciascun host locale (DNS o NetBIOS name) l&#8217;indirizzo IP così come i dati inviati e ricevuti sia in kilobytes che come percentuale. Le piccole icone presenti nella colonna degli hosts costituiscono degli indicatori dei servizi (http, mail, p2p etc) così come le pandierine sullo status. In fondo alla pagina vi è una piccola tabella che sommarizza il traffico totale dei dati inviati e ricevuti così come la banda usata per il periodo di attività di ntop.<br />
<strong><br />
IP:Traffic Directions:Local to Remote</strong> - Fornisce le stesse informazioni, ma con statistiche limitate al traffico originato da hosts locali e destinato a hosts remoti.</p>
<p><strong>IP:Traffic Directions:Remote to Local</strong> - Fornisce le stesse informazioni, ma con statistiche limitate al traffico originato da hosts remoti e destinato a hosts locali.</p>
<p><strong>IP:Traffic Directions:Remote to Remote</strong> - Fornisce le stesse informazioni, ma con statistiche limitate al traffico originato da hosts remoti e destinato a hosts remoti.</p>
<p><strong>IP:Local:Ports Used</strong> - Visualizza una tabella che elenca per ogni servizio (es. ftp, telnet, ed http), come identificate dalle porte TCP/UDP port, l&#8217;indirizzo IP dei clients e dei servers che usano quel servizio.<br />
<strong><br />
IP:Local:Active TCP/UDP Sessions</strong>.</p>
<p><strong>IP:Local:Host Fingerprint</strong> - Visualizza i Sistemi Operativi degli hosts rilevati sulla rete. La accuratezza di questa feature dipende dai database per OS fingerprint usati da ettercap.</p>
<p><strong>IP:Local:Host Characterization</strong> - Visualizza una tabella che identifica che tipo di device un host sia (L2 switch, gateway, printer) e che genere di servizi ospiti (VoiP NTP/DNS server, Mail, Directory, HTTP, FTP, DHCP, WINS, se l&#8217; host stia eseguendo qualche programma peer-to-peer e se l&#8217; host sia attivo oppure no)<br />
<strong><br />
IP:Local:Network Traffic Map</strong> - Traccia una mappa del traffico di rete che mostra graficamente quali hosts accedano a quali altri.</p>
<p><strong>IP:Local:Local Matrix</strong> - Visualizza una matrice di hosts sulla subnet locale e quanto traffico scambiano tra loro.</p>
<p><strong>Utils:RRD Alarms:Configure Thresholds</strong><br />
<strong>Utils:RRD Alarms:Check Now</strong></p>
<p><strong>Utils:Data Dump</strong> - Fornisce una pagina dove impostare il dump delle varie statistiche di ntop relative agli hosts rilevati in vari formati di file (text, xml, perl, python, php e json)</p>
<p><strong>Utils:View Log</strong> - Questa pagina mostra gli ultimi 50 log messages di ntop con priority INFO o superiore.</p>
<p>La versione corrente di ntop supporta dei plug-ins, come meccanismo di estensione. All&#8217; amministratore è consentito estendere le funzionalità di ntop con features extra. Esempi di plug-ins sono quelli relativi a ICMP, ARP/RARP e WAP. Possono venire installati opzionalmente, ed avviati selettivamente durante la inizializzazione di ntop.</p>
<p><strong>Plugins:cPacket</strong> - Questo plugin viene usato per collezionare statistiche di traffico prodotto da devices cTap di cPacket. Il flusso dei dati ricevuti viene riportato come relative a  &#8216;NIC&#8217; separati nei regolari reports di ntop  – proprio come interfaccie NetFlow virtuali.<br />
<strong><br />
Plugins:icmpWatch</strong> - Questo plugin produce un report riguardante i pacchetti ICMP che ntop ha rilevato.<br />
<strong><br />
Plugins:NetFlow</strong> - Questo plugin viene usato per impostare, attivare e disattivare il supporto NetFlow, con ntop come collettore NetFlow.<br />
<strong><br />
Plugins:RoundRobin Database</strong> - Questo plugin viene usato per impostare, attivare e disattivare il supporto di rrd in ntop.</p>
<p><strong>Plugins:sFlow</strong> - Questo plugin viene usato per impostare, attivare e disattivare il supporto di sFlow in ntop.<br />
<strong><br />
Admin:Configure:Startup Options</strong> - Apre una pagina dove è possibile configurare le varie opzioni di avvio per ntop (figura seguente). La maggior parte delle opzioni di ntop specificabili a riga di comando hanno degli equivalenti qui.<br />
<img class="aligncenter size-full wp-image-1662" title="ntop_config_startup" src="http://www.voipandhack.it/wp-content/uploads/2010/08/ntop_config_startup.png" alt="ntop_config_startup" width="500" height="530" /><br />
<strong><br />
Admin:Configure:Preferences</strong> - Apre una pagina dove è possibile impostare delle preferences per ntop. Anche qui le opzioni specificabili hanno un equivalente a riga di comando. Tipicamente, si assegna un valore di 0 per disattivare una opzione, o di 1 per attivarla.</p>
<p><strong>Admin:Configure:Packet Filter</strong> - Permette di impostare una espressione filtro che definisce che tipo di traffico ntop debba analizzare.</p>
<p><strong>Admin:Configure:Reset Stats</strong> - Scarica tutte le informazioni che ntop ha raccolto in memoria e fa ripartire i conteggi da zero.</p>
<p><strong>Admin:Configure:Web Users</strong> - Configura l&#8217; insieme di utenti che possono accedere all&#8217;interfaccia web di ntop (usernames e passwords)</p>
<p><strong>Admin:Configure:Protect URLs</strong> - Configura l&#8217;accesso a varie pagine di ntop in base all&#8217;utente.<br />
<strong><br />
Admin:Shutdown</strong> - Termina l&#8217;esecuzione di ntop.</p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="Introduzione a Ntop - seconda parte"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/sicurezza/introduzione-a-ntop-seconda-parte"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2010-08-16 17:08:51"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;Terminiamo l&amp;#8217;esame dei menu di ntop e delle loro gerarchie.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IP:Summary:Traffic &lt;/strong&gt;- Visualizza una tabella che elenca, per ciascun host (IP) visto, quanti dati tale host abbia trasferito, che percentuale del traffico totale dal momento in cui ntop è entrato in funzione rappresenti, e l&amp;#8217;ammontare di traffico inviato per alcuni protocolli chiave TCP/IP  (FTP HTTP DNS, Telnet, NBios-IP Mail, DHCP-BOOTP SNMP NNTP, NFS/AFS, VoIP X11, SSH, Gnutella, Kazaa, WinMX, DC++, eDonkey, BitTorrent, Messenger, Other, IP).&lt;span id=&quot;more-1661&quot;&gt;&lt;/span&gt;&lt;br /&gt;
Si può visualizzare questa informazione relativamente agli hosts locali, remoti o tutti gli hosts per i dati inviati, ricevuti o sia inviati che ricevuti sia per singola VLAN che per tutte le VLANs.&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
IP:Summary:Multicast&lt;/strong&gt; - Visualizza una tabella di tutti i gruppi ed origini multicast e quanti dati ciascuna origine abbia inviato o quanti dati ciascun gruppo ha ricevuto.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IP:Summary:Internet Domain&lt;/strong&gt; - Visualizza statistiche di traffico per tutti i domini Internet (DNS). Per quanto riguarda TCP/IP, vengono mostrati i dati inviati/riecevuti in kilobytes o come una percentuale per TCP, UDP e per entrambi. Per quanto riguarda ICMP, viene mostrato il traffico inviato/ricevuto per IPv4 ed IPv6.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IP:Summary:ASs&lt;/strong&gt; - Visualizza un elenco degli Autonomous Systems BGP che il vostro traffico attraversa.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IP:Summary:Host Communities&lt;/strong&gt; - Fornisce informazioni sul traffico aggregato di gruppi predefiniti di host. Cliccando su un qualsiasi cluster si ottengono le statistiche di traffico degli hosts componenti.&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
IP:Summary:Distribution&lt;/strong&gt; - Visualizza un grafico a torta che rappresenta l&amp;#8217;ammontare relativo a traffico locale, locale verso remoto, e remoto verso locale. Per ciascuna di queste categorie di traffico, una tabella fornisce maggiori dettagli ulteriormente suddivisa per protocollo IP.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IP:Traffic Directions:Local to Local&lt;/strong&gt; - Visualizza per ciascun host locale (DNS o NetBIOS name) l&amp;#8217;indirizzo IP così come i dati inviati e ricevuti sia in kilobytes che come percentuale. Le piccole icone presenti nella colonna degli hosts costituiscono degli indicatori dei servizi (http, mail, p2p etc) così come le pandierine sullo status. In fondo alla pagina vi è una piccola tabella che sommarizza il traffico totale dei dati inviati e ricevuti così come la banda usata per il periodo di attività di ntop.&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
IP:Traffic Directions:Local to Remote&lt;/strong&gt; - Fornisce le stesse informazioni, ma con statistiche limitate al traffico originato da hosts locali e destinato a hosts remoti.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IP:Traffic Directions:Remote to Local&lt;/strong&gt; - Fornisce le stesse informazioni, ma con statistiche limitate al traffico originato da hosts remoti e destinato a hosts locali.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IP:Traffic Directions:Remote to Remote&lt;/strong&gt; - Fornisce le stesse informazioni, ma con statistiche limitate al traffico originato da hosts remoti e destinato a hosts remoti.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IP:Local:Ports Used&lt;/strong&gt; - Visualizza una tabella che elenca per ogni servizio (es. ftp, telnet, ed http), come identificate dalle porte TCP/UDP port, l&amp;#8217;indirizzo IP dei clients e dei servers che usano quel servizio.&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
IP:Local:Active TCP/UDP Sessions&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IP:Local:Host Fingerprint&lt;/strong&gt; - Visualizza i Sistemi Operativi degli hosts rilevati sulla rete. La accuratezza di questa feature dipende dai database per OS fingerprint usati da ettercap.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IP:Local:Host Characterization&lt;/strong&gt; - Visualizza una tabella che identifica che tipo di device un host sia (L2 switch, gateway, printer) e che genere di servizi ospiti (VoiP NTP/DNS server, Mail, Directory, HTTP, FTP, DHCP, WINS, se l&amp;#8217; host stia eseguendo qualche programma peer-to-peer e se l&amp;#8217; host sia attivo oppure no)&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
IP:Local:Network Traffic Map&lt;/strong&gt; - Traccia una mappa del traffico di rete che mostra graficamente quali hosts accedano a quali altri.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IP:Local:Local Matrix&lt;/strong&gt; - Visualizza una matrice di hosts sulla subnet locale e quanto traffico scambiano tra loro.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Utils:RRD Alarms:Configure Thresholds&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Utils:RRD Alarms:Check Now&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Utils:Data Dump&lt;/strong&gt; - Fornisce una pagina dove impostare il dump delle varie statistiche di ntop relative agli hosts rilevati in vari formati di file (text, xml, perl, python, php e json)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Utils:View Log&lt;/strong&gt; - Questa pagina mostra gli ultimi 50 log messages di ntop con priority INFO o superiore.&lt;/p&gt;
&lt;p&gt;La versione corrente di ntop supporta dei plug-ins, come meccanismo di estensione. All&amp;#8217; amministratore è consentito estendere le funzionalità di ntop con features extra. Esempi di plug-ins sono quelli relativi a ICMP, ARP/RARP e WAP. Possono venire installati opzionalmente, ed avviati selettivamente durante la inizializzazione di ntop.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Plugins:cPacket&lt;/strong&gt; - Questo plugin viene usato per collezionare statistiche di traffico prodotto da devices cTap di cPacket. Il flusso dei dati ricevuti viene riportato come relative a  &amp;#8216;NIC&amp;#8217; separati nei regolari reports di ntop  – proprio come interfaccie NetFlow virtuali.&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
Plugins:icmpWatch&lt;/strong&gt; - Questo plugin produce un report riguardante i pacchetti ICMP che ntop ha rilevato.&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
Plugins:NetFlow&lt;/strong&gt; - Questo plugin viene usato per impostare, attivare e disattivare il supporto NetFlow, con ntop come collettore NetFlow.&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
Plugins:RoundRobin Database&lt;/strong&gt; - Questo plugin viene usato per impostare, attivare e disattivare il supporto di rrd in ntop.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Plugins:sFlow&lt;/strong&gt; - Questo plugin viene usato per impostare, attivare e disattivare il supporto di sFlow in ntop.&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
Admin:Configure:Startup Options&lt;/strong&gt; - Apre una pagina dove è possibile configurare le varie opzioni di avvio per ntop (figura seguente). La maggior parte delle opzioni di ntop specificabili a riga di comando hanno degli equivalenti qui.&lt;br /&gt;
&lt;img class=&quot;aligncenter size-full wp-image-1662&quot; title=&quot;ntop_config_startup&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2010/08/ntop_config_startup.png&quot; alt=&quot;ntop_config_startup&quot; width=&quot;500&quot; height=&quot;530&quot; /&gt;&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
Admin:Configure:Preferences&lt;/strong&gt; - Apre una pagina dove è possibile impostare delle preferences per ntop. Anche qui le opzioni specificabili hanno un equivalente a riga di comando. Tipicamente, si assegna un valore di 0 per disattivare una opzione, o di 1 per attivarla.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Admin:Configure:Packet Filter&lt;/strong&gt; - Permette di impostare una espressione filtro che definisce che tipo di traffico ntop debba analizzare.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Admin:Configure:Reset Stats&lt;/strong&gt; - Scarica tutte le informazioni che ntop ha raccolto in memoria e fa ripartire i conteggi da zero.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Admin:Configure:Web Users&lt;/strong&gt; - Configura l&amp;#8217; insieme di utenti che possono accedere all&amp;#8217;interfaccia web di ntop (usernames e passwords)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Admin:Configure:Protect URLs&lt;/strong&gt; - Configura l&amp;#8217;accesso a varie pagine di ntop in base all&amp;#8217;utente.&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
Admin:Shutdown&lt;/strong&gt; - Termina l&amp;#8217;esecuzione di ntop.&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/sicurezza/introduzione-a-ntop-seconda-parte/feed</wfw:commentRss>
		</item>
		<item>
		<title>Introduzione a NTop</title>
		<link>http://www.voipandhack.it/archives/linux/introduzione-a-ntop</link>
		<comments>http://www.voipandhack.it/archives/linux/introduzione-a-ntop#comments</comments>
		<pubDate>Wed, 11 Aug 2010 22:30:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Hacking]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Sicurezza]]></category>

		<category><![CDATA[Tools]]></category>

		<category><![CDATA[network monitoring]]></category>

		<category><![CDATA[ntop]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[security]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[tcp-ip]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1650</guid>
		<description><![CDATA[NTOP, (acronimo di Network TOP, in riferimento al famoso comando UNIX) è un&#8217;applicazione opensource, disponibile sia per piattaforme UNIX che Win32, rilasciata sotto licenza GPL, e orientata all&#8217;analisi e al monitoraggio del traffico di rete, in grado di fornire un importante supporto a varie attività di network management, comprese pianificazione e ottimizzazione della stessa rete, [...]]]></description>
			<content:encoded><![CDATA[<p>NTOP, (acronimo di Network TOP, in riferimento al famoso comando UNIX) è un&#8217;applicazione opensource, disponibile sia per piattaforme UNIX che Win32, rilasciata sotto licenza GPL, e orientata all&#8217;analisi e al monitoraggio del traffico di rete, in grado di fornire un importante supporto a varie attività di network management, comprese pianificazione e ottimizzazione della stessa rete, e anche con rilevamento di violazioni alla network security.<br />
Include pertanto funzionalità di IDS sebbene non sia specificatamente studiata per tale compito.<span id="more-1650"></span></p>
<p>Il programma viene attivamente sviluppato e mantenuto da <a href="http://luca.ntop.org/">Luca Deri</a>, ricercatore e docente presso il Dipartimento di Informatica dell&#8217;Università di Pisa, ed è caratterizzato da una interfacia web integrata semplice da utilizzare, caratteristica che lo rende pertanto estremamente portabile, ed un minimo utilizzo di risorse.</p>
<p>Il network management è una attività molto complessa, e tale complessità, dovuta alla varietà delle tipologie di network e alla loro crescente integrazione, sta progressivamente aumentando.</p>
<p>Dal momento che le reti diventano progressivamente più grandi, più complesse, ed anche più eterogenee, i costi del network management crescono.<br />
In tale scenario, tools automatici divengono essenziali strumenti di supporto, collezionando informazioni sullo stato ed il comportamento dei vari elementi di rete.</p>
<p>Ntop è uno dei pochi applicativi per le reti locali diffuso anche a livello mondiale, avendo saputo dimostrare nel corso degli anni di essere un tool molto affidabile per il network monitoring sia in ambito LAN (default) che WAN</p>
<p>Sebbene sia disponibile anche sottoforma di package precompilato per differenti distribuxioni Linux, è sicuramente preferibile effettuarne una compilazione a partire dai sorgenti, che sono disponibili sia sotto forma di tarball compresso che tramite server SVN, caso nel quale si possono ottenere così:<br />
<code><br />
# mkdir /opt/tools/<br />
# cd /opt/tools/<br />
# svn co https://svn.ntop.org/svn/ntop/trunk/ntop<br />
</code><br />
Per compilare infine ntop:<br />
<code><br />
# cd ntop<br />
# ./autogen.sh<br />
# make<br />
# make install<br />
</code><br />
Occorre per prima cosa lanciare ./autogen.sh nella directory base (ntop) per creare lo script configure e i Makefiles.<br />
Lo script configure risulta molto indicativo riguardo ad eventuali dipendenze assenti, come ad esempio:</p>
<pre>*******************************************************************
*
* ERROR: gdbm header or library routines are missing
*           (yes means it was found, no means it was not found)
*
*              gdbm.h...no
*              gdbm_open() in -lgdbm...no
*
*&gt;&gt;&gt; No way to proceed.
*
*???     1. Install libgdbm
*???    and Rerun ./configure
*???  or 2. Use the --with-gdbm-xxxxx= options
*
*******************************************************************

configure: error: Unable to continue... aborting ./configure</pre>
<p>dove il problema è chiaramente dovuto all&#8217;assenza del package libgdbm-dev.</p>
<p>Si possono anche passare opzioni &#8220;configure&#8221; ad autogen.sh, come ad esempio in:<br />
<code><br />
# ./autogen.sh --prefix=/usr/local/ntop-svn<br />
</code><br />
Ntop necessita di essere avviato coi privilegi di root per poter catturare i pacchetti in transito dalle schede di rete della macchina e mettere una interfaccia in promiscuous mode.<br />
Non appena avviato tuttavia, per default, declassa i propri privilegi a quelli dell&#8217;utente nobody (se non diversamente specificato con l&#8217;opzione –u).<br />
È importante ricordare che lo user al quale ntop adegua i propri privilegi deve possedere gli appropriati diritti per accedere alle locazioni dove ntop archivia i propri database (cioè /usr/local/var/ntop per default).</p>
<p>Per impostare correttamente proprietà e diritti su tali directory:<br />
<code><br />
# chown –R [ntopuser]:[ntopusergroup] /usr/local/var/ntop<br />
</code><br />
Quando si installa ntop e lo siconfigura per la prima volta, è necessario impostare una password amministrativa:<br />
<code><br />
# ntop --set-admin-password<br />
</code><br />
oppure<br />
<code><br />
# ntop –A<br />
</code><br />
quindi introdurre e confermare la propria password amministrativa per ntop.</p>
<p>L&#8217;avvio di ntop può avvenire semplicemente invocando il comando<br />
<code><br />
# ntop -d<br />
Wed Aug 11 11:33:21 2010  NOTE: Interface merge enabled by default<br />
Wed Aug 11 11:33:21 2010  Initializing gdbm databases<br />
Wed Aug 11 11:33:21 2010  ntop will be started as user nobody<br />
Wed Aug 11 11:33:21 2010  ntop v.4.0.1 (32 bit)<br />
[...]<br />
Wed Aug 11 11:33:21 2010  INIT: Bye bye: I&#8217;m becoming a daemon&#8230;<br />
Wed Aug 11 11:33:21 2010  INIT: Parent process is exiting (this is normal)<br />
</code><br />
e può normalmente avvenire anche come servizio con:<br />
<code><br />
# /etc/init.d/ntop restart<br />
</code><br />
Per conoscere l&#8217;elenco delle possibili opzioni a riga di comando previste da ntop ed il loro scopo si può dare<br />
<code><br />
# ntop –h<br />
</code><br />
oppure<br />
<code><br />
# ntop --help<br />
</code></p>
<pre>Welcome to ntop v.4.0.1 (32 bit)
[Configured on Aug 11 2010 10:04:39, built on Aug 11 2010 10:06:08]
Copyright 1998-2010 by Luca Deri &lt;deri@ntop.org&gt;.
Get the freshest ntop from http://www.ntop.org/

Usage: ntop [OPTION]

Basic options:
[-h             | --help]                             Display this help and exit
[-u &lt;user&gt;      | --user &lt;user&gt;]                      Userid/name to run ntop under (see man page)
[-t &lt;number&gt;    | --trace-level &lt;number&gt;]             Trace level [0-6]
[-P &lt;path&gt;      | --db-file-path &lt;path&gt;]              Path for ntop internal database files
[-Q &lt;path&gt;      | --spool-file-path &lt;path&gt;]           Path for ntop spool files
[-w &lt;port&gt;      | --http-server &lt;port&gt;]               Web server (http:) port (or address:port) to listen on
[-W &lt;port&gt;      | --https-server &lt;port&gt;]              Web server (https:) port (or address:port) to listen on

Advanced options:
[-4             | --ipv4]                             Use IPv4 connections
[-6             | --ipv6]                             Use IPv6 connections
[...]</pre>
<p>L&#8217;accesso ad ntop può avvenire sia in modalità interattiva che in web mode.<br />
Per accedere ad ntop attraverso l&#8217;interfaccia web occorre puntare alla URL http://localhost:3000 o più genericamente http://nnn.nnn.nnn.nnn:3000 nel caso in cui l&#8217;accesso avvenga da una macchina diversa da quella dove ntop è in esecuzione.<br />
L&#8217;interfaccia web è molto semplice ma lineare, con un menu, nell&#8217;area superiore, così strutturato gerarchicamente:</p>
<p><strong>About:What is ntop</strong>? (Cosa è e a cosa serve ntop)<br />
<strong>About:Il blog di ntop</strong> (http://www.ntop.org/blog/)<br />
<strong>About:Crediti</strong> (altri sviluppatori hanno contribuito al progetto)<br />
<strong>About:Make a donation</strong> (fate finta di non aver capito, mi raccomando!)<br />
<strong>About:Documentazione on line</strong> (man pages, FAQ, anche un tutorial python)<br />
<strong>About:Mostra configurazione</strong> (figura seguente) ntop0.png<br />
<strong>About:Riporta un problema</strong></p>
<p><img class="aligncenter size-full wp-image-1651" title="ntop0" src="http://www.voipandhack.it/wp-content/uploads/2010/08/ntop0.png" alt="ntop0" width="500" height="360" /></p>
<p><strong>Summary:Traffico</strong>. Questa pagina, che è in realtà quella che si apre per prima nel browser (figura seguente),</p>
<p><img class="aligncenter size-full wp-image-1652" title="ntop1" src="http://www.voipandhack.it/wp-content/uploads/2010/08/ntop1.png" alt="ntop1" width="500" height="371" /></p>
<p>presenta informazioni tramite una serie di tabelle e grafici riferiti a:</p>
<p>Statistiche globali sul traffico.<br />
Report del traffico per interfaccia attiva.<br />
Distribuzione globale per protocollo (figura seguente).<br />
Distribuzione globale relativa al protocollo TCP/UDP.<br />
Distribuzione del traffico per porte TCP/UDP (Last Minute View)</p>
<p><img class="aligncenter size-full wp-image-1653" title="ntop2" src="http://www.voipandhack.it/wp-content/uploads/2010/08/ntop2.png" alt="ntop2" width="500" height="371" /></p>
<p><img class="aligncenter size-full wp-image-1654" title="ntop3" src="http://www.voipandhack.it/wp-content/uploads/2010/08/ntop3.png" alt="ntop3" width="500" height="398" /></p>
<p><strong>Summary:Hosts</strong>. Fornisce informazioni su tutti gli hosts visti (figura precedente). Il traffico mostrato per ciascun host può essere espresso in byte o pacchetti. I valori di bandwidth sono la percentuale dei bytes total che ntop ha visto sull&#8217;interfaccia, ed il totale dei valori NON sarà del 100% dal momento che il traffico locale verrà contato due volte (una volta come inviato e l&#8217;altra come ricevuto). La banda per il traffico inviato e ricevuto viene mostrata attraverso barre diversamente colorate.<br />
Cliccando su una icona accanto al nome host se ne ottiene la geolocalizzazione (figura seguente).</p>
<p><img class="aligncenter size-full wp-image-1655" title="ntop4" src="http://www.voipandhack.it/wp-content/uploads/2010/08/ntop4.png" alt="ntop4" width="500" height="392" /></p>
<p><strong>Summary:Carico di rete (Network Load)</strong>. Mostra dei grafici relativi al network throughput degli ultimi 10 minuti, 1 ora, 1 giorno ed 1 mese (figura successiva).</p>
<p><img class="aligncenter size-full wp-image-1656" title="ntop5" src="http://www.voipandhack.it/wp-content/uploads/2010/08/ntop5.png" alt="ntop5" width="500" height="398" /></p>
<p>Cliccando sul graph viene visualizzata una tabella dei 3 indirizzi più attivi (cliccando sui grafici Last 10 minute o Last Hour) ogni minuto (figura seguente), oppure ogni ora (cliccando sul grafici Last Day).</p>
<p><img class="aligncenter size-full wp-image-1657" title="ntop6" src="http://www.voipandhack.it/wp-content/uploads/2010/08/ntop6.png" alt="ntop6" width="500" height="398" /></p>
<p><strong>Summary:Traffic Map:Region Map</strong>. Fornisce informazioni sugli hosts presenti in ciascuna regione (Stati Uniti, Italia, Cina).<br />
<strong>Summary:Traffic Map:Host Map</strong>. Geolocalizza tutti gli hosts rilevati (figura seguente).</p>
<p><img class="aligncenter size-full wp-image-1659" title="ntop71" src="http://www.voipandhack.it/wp-content/uploads/2010/08/ntop71.png" alt="ntop71" width="500" height="398" /></p>
<p>Summary:Network Flows. Fornisce informazioni si qualsiasi specifica regola di flusso, user-defined.</p>
<p><strong>All Protocols:Traffic</strong>. Visualizza una tabella che elenca per ciascun host rilevato, quanti dati quell&#8217; host abbia trasferito, quale percentuale del traffico totale rappresenta dal momento in cui ntop è andato in esecuzione, e la quantità di traffico inviato da alcuni protocolli chiave (TCP, UDP, ICMP, ICMPv6, DLC, IPC, RARP, Appletalk, GRE, IPv6, OSPF, IPSec ed altri protocolli).<br />
<strong>All Protocols: Throughput</strong>. Visualizza una tabella relativa al network throughput. Si possono limitare tali informazioni solamente agli hosts locali oppure solo agli hosts remoti oppure tutti gli hosts e per ciascuna opzione, si possono vedere i dati inviati, i dati ricevuti o la totalità dei data sia inviati che ricevuti.<br />
<strong>All Protocols:Activity</strong>. Visualizza una tabella che mostra il traffico orario per host. Il valore percentuale per un dato host è il traffico per quell&#8217;host durante quell&#8217;ora diviso il traffico totale per quell&#8217; host nelle ultime 24 ore.</p>
<p>Riprenderemo il discorso la prossima volta</p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="Introduzione a NTop"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/linux/introduzione-a-ntop"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2010-08-12 00:08:00"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;NTOP, (acronimo di Network TOP, in riferimento al famoso comando UNIX) è un&amp;#8217;applicazione opensource, disponibile sia per piattaforme UNIX che Win32, rilasciata sotto licenza GPL, e orientata all&amp;#8217;analisi e al monitoraggio del traffico di rete, in grado di fornire un importante supporto a varie attività di network management, comprese pianificazione e ottimizzazione della stessa rete, e anche con rilevamento di violazioni alla network security.&lt;br /&gt;
Include pertanto funzionalità di IDS sebbene non sia specificatamente studiata per tale compito.&lt;span id=&quot;more-1650&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Il programma viene attivamente sviluppato e mantenuto da &lt;a href=&quot;http://luca.ntop.org/&quot;&gt;Luca Deri&lt;/a&gt;, ricercatore e docente presso il Dipartimento di Informatica dell&amp;#8217;Università di Pisa, ed è caratterizzato da una interfacia web integrata semplice da utilizzare, caratteristica che lo rende pertanto estremamente portabile, ed un minimo utilizzo di risorse.&lt;/p&gt;
&lt;p&gt;Il network management è una attività molto complessa, e tale complessità, dovuta alla varietà delle tipologie di network e alla loro crescente integrazione, sta progressivamente aumentando.&lt;/p&gt;
&lt;p&gt;Dal momento che le reti diventano progressivamente più grandi, più complesse, ed anche più eterogenee, i costi del network management crescono.&lt;br /&gt;
In tale scenario, tools automatici divengono essenziali strumenti di supporto, collezionando informazioni sullo stato ed il comportamento dei vari elementi di rete.&lt;/p&gt;
&lt;p&gt;Ntop è uno dei pochi applicativi per le reti locali diffuso anche a livello mondiale, avendo saputo dimostrare nel corso degli anni di essere un tool molto affidabile per il network monitoring sia in ambito LAN (default) che WAN&lt;/p&gt;
&lt;p&gt;Sebbene sia disponibile anche sottoforma di package precompilato per differenti distribuxioni Linux, è sicuramente preferibile effettuarne una compilazione a partire dai sorgenti, che sono disponibili sia sotto forma di tarball compresso che tramite server SVN, caso nel quale si possono ottenere così:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# mkdir /opt/tools/&lt;br /&gt;
# cd /opt/tools/&lt;br /&gt;
# svn co https://svn.ntop.org/svn/ntop/trunk/ntop&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Per compilare infine ntop:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# cd ntop&lt;br /&gt;
# ./autogen.sh&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Occorre per prima cosa lanciare ./autogen.sh nella directory base (ntop) per creare lo script configure e i Makefiles.&lt;br /&gt;
Lo script configure risulta molto indicativo riguardo ad eventuali dipendenze assenti, come ad esempio:&lt;/p&gt;
&lt;pre&gt;*******************************************************************
*
* ERROR: gdbm header or library routines are missing
*           (yes means it was found, no means it was not found)
*
*              gdbm.h...no
*              gdbm_open() in -lgdbm...no
*
*&amp;gt;&amp;gt;&amp;gt; No way to proceed.
*
*???     1. Install libgdbm
*???    and Rerun ./configure
*???  or 2. Use the --with-gdbm-xxxxx= options
*
*******************************************************************

configure: error: Unable to continue... aborting ./configure&lt;/pre&gt;
&lt;p&gt;dove il problema è chiaramente dovuto all&amp;#8217;assenza del package libgdbm-dev.&lt;/p&gt;
&lt;p&gt;Si possono anche passare opzioni &amp;#8220;configure&amp;#8221; ad autogen.sh, come ad esempio in:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# ./autogen.sh --prefix=/usr/local/ntop-svn&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Ntop necessita di essere avviato coi privilegi di root per poter catturare i pacchetti in transito dalle schede di rete della macchina e mettere una interfaccia in promiscuous mode.&lt;br /&gt;
Non appena avviato tuttavia, per default, declassa i propri privilegi a quelli dell&amp;#8217;utente nobody (se non diversamente specificato con l&amp;#8217;opzione –u).&lt;br /&gt;
È importante ricordare che lo user al quale ntop adegua i propri privilegi deve possedere gli appropriati diritti per accedere alle locazioni dove ntop archivia i propri database (cioè /usr/local/var/ntop per default).&lt;/p&gt;
&lt;p&gt;Per impostare correttamente proprietà e diritti su tali directory:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# chown –R [ntopuser]:[ntopusergroup] /usr/local/var/ntop&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Quando si installa ntop e lo siconfigura per la prima volta, è necessario impostare una password amministrativa:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# ntop --set-admin-password&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
oppure&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# ntop –A&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
quindi introdurre e confermare la propria password amministrativa per ntop.&lt;/p&gt;
&lt;p&gt;L&amp;#8217;avvio di ntop può avvenire semplicemente invocando il comando&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# ntop -d&lt;br /&gt;
Wed Aug 11 11:33:21 2010  NOTE: Interface merge enabled by default&lt;br /&gt;
Wed Aug 11 11:33:21 2010  Initializing gdbm databases&lt;br /&gt;
Wed Aug 11 11:33:21 2010  ntop will be started as user nobody&lt;br /&gt;
Wed Aug 11 11:33:21 2010  ntop v.4.0.1 (32 bit)&lt;br /&gt;
[...]&lt;br /&gt;
Wed Aug 11 11:33:21 2010  INIT: Bye bye: I&amp;#8217;m becoming a daemon&amp;#8230;&lt;br /&gt;
Wed Aug 11 11:33:21 2010  INIT: Parent process is exiting (this is normal)&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
e può normalmente avvenire anche come servizio con:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# /etc/init.d/ntop restart&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Per conoscere l&amp;#8217;elenco delle possibili opzioni a riga di comando previste da ntop ed il loro scopo si può dare&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# ntop –h&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
oppure&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# ntop --help&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;Welcome to ntop v.4.0.1 (32 bit)
[Configured on Aug 11 2010 10:04:39, built on Aug 11 2010 10:06:08]
Copyright 1998-2010 by Luca Deri &amp;lt;deri@ntop.org&amp;gt;.
Get the freshest ntop from http://www.ntop.org/

Usage: ntop [OPTION]

Basic options:
[-h             | --help]                             Display this help and exit
[-u &amp;lt;user&amp;gt;      | --user &amp;lt;user&amp;gt;]                      Userid/name to run ntop under (see man page)
[-t &amp;lt;number&amp;gt;    | --trace-level &amp;lt;number&amp;gt;]             Trace level [0-6]
[-P &amp;lt;path&amp;gt;      | --db-file-path &amp;lt;path&amp;gt;]              Path for ntop internal database files
[-Q &amp;lt;path&amp;gt;      | --spool-file-path &amp;lt;path&amp;gt;]           Path for ntop spool files
[-w &amp;lt;port&amp;gt;      | --http-server &amp;lt;port&amp;gt;]               Web server (http:) port (or address:port) to listen on
[-W &amp;lt;port&amp;gt;      | --https-server &amp;lt;port&amp;gt;]              Web server (https:) port (or address:port) to listen on

Advanced options:
[-4             | --ipv4]                             Use IPv4 connections
[-6             | --ipv6]                             Use IPv6 connections
[...]&lt;/pre&gt;
&lt;p&gt;L&amp;#8217;accesso ad ntop può avvenire sia in modalità interattiva che in web mode.&lt;br /&gt;
Per accedere ad ntop attraverso l&amp;#8217;interfaccia web occorre puntare alla URL http://localhost:3000 o più genericamente http://nnn.nnn.nnn.nnn:3000 nel caso in cui l&amp;#8217;accesso avvenga da una macchina diversa da quella dove ntop è in esecuzione.&lt;br /&gt;
L&amp;#8217;interfaccia web è molto semplice ma lineare, con un menu, nell&amp;#8217;area superiore, così strutturato gerarchicamente:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;About:What is ntop&lt;/strong&gt;? (Cosa è e a cosa serve ntop)&lt;br /&gt;
&lt;strong&gt;About:Il blog di ntop&lt;/strong&gt; (http://www.ntop.org/blog/)&lt;br /&gt;
&lt;strong&gt;About:Crediti&lt;/strong&gt; (altri sviluppatori hanno contribuito al progetto)&lt;br /&gt;
&lt;strong&gt;About:Make a donation&lt;/strong&gt; (fate finta di non aver capito, mi raccomando!)&lt;br /&gt;
&lt;strong&gt;About:Documentazione on line&lt;/strong&gt; (man pages, FAQ, anche un tutorial python)&lt;br /&gt;
&lt;strong&gt;About:Mostra configurazione&lt;/strong&gt; (figura seguente) ntop0.png&lt;br /&gt;
&lt;strong&gt;About:Riporta un problema&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1651&quot; title=&quot;ntop0&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2010/08/ntop0.png&quot; alt=&quot;ntop0&quot; width=&quot;500&quot; height=&quot;360&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summary:Traffico&lt;/strong&gt;. Questa pagina, che è in realtà quella che si apre per prima nel browser (figura seguente),&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1652&quot; title=&quot;ntop1&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2010/08/ntop1.png&quot; alt=&quot;ntop1&quot; width=&quot;500&quot; height=&quot;371&quot; /&gt;&lt;/p&gt;
&lt;p&gt;presenta informazioni tramite una serie di tabelle e grafici riferiti a:&lt;/p&gt;
&lt;p&gt;Statistiche globali sul traffico.&lt;br /&gt;
Report del traffico per interfaccia attiva.&lt;br /&gt;
Distribuzione globale per protocollo (figura seguente).&lt;br /&gt;
Distribuzione globale relativa al protocollo TCP/UDP.&lt;br /&gt;
Distribuzione del traffico per porte TCP/UDP (Last Minute View)&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1653&quot; title=&quot;ntop2&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2010/08/ntop2.png&quot; alt=&quot;ntop2&quot; width=&quot;500&quot; height=&quot;371&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1654&quot; title=&quot;ntop3&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2010/08/ntop3.png&quot; alt=&quot;ntop3&quot; width=&quot;500&quot; height=&quot;398&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summary:Hosts&lt;/strong&gt;. Fornisce informazioni su tutti gli hosts visti (figura precedente). Il traffico mostrato per ciascun host può essere espresso in byte o pacchetti. I valori di bandwidth sono la percentuale dei bytes total che ntop ha visto sull&amp;#8217;interfaccia, ed il totale dei valori NON sarà del 100% dal momento che il traffico locale verrà contato due volte (una volta come inviato e l&amp;#8217;altra come ricevuto). La banda per il traffico inviato e ricevuto viene mostrata attraverso barre diversamente colorate.&lt;br /&gt;
Cliccando su una icona accanto al nome host se ne ottiene la geolocalizzazione (figura seguente).&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1655&quot; title=&quot;ntop4&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2010/08/ntop4.png&quot; alt=&quot;ntop4&quot; width=&quot;500&quot; height=&quot;392&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summary:Carico di rete (Network Load)&lt;/strong&gt;. Mostra dei grafici relativi al network throughput degli ultimi 10 minuti, 1 ora, 1 giorno ed 1 mese (figura successiva).&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1656&quot; title=&quot;ntop5&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2010/08/ntop5.png&quot; alt=&quot;ntop5&quot; width=&quot;500&quot; height=&quot;398&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Cliccando sul graph viene visualizzata una tabella dei 3 indirizzi più attivi (cliccando sui grafici Last 10 minute o Last Hour) ogni minuto (figura seguente), oppure ogni ora (cliccando sul grafici Last Day).&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1657&quot; title=&quot;ntop6&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2010/08/ntop6.png&quot; alt=&quot;ntop6&quot; width=&quot;500&quot; height=&quot;398&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summary:Traffic Map:Region Map&lt;/strong&gt;. Fornisce informazioni sugli hosts presenti in ciascuna regione (Stati Uniti, Italia, Cina).&lt;br /&gt;
&lt;strong&gt;Summary:Traffic Map:Host Map&lt;/strong&gt;. Geolocalizza tutti gli hosts rilevati (figura seguente).&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1659&quot; title=&quot;ntop71&quot; src=&quot;http://www.voipandhack.it/wp-content/uploads/2010/08/ntop71.png&quot; alt=&quot;ntop71&quot; width=&quot;500&quot; height=&quot;398&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Summary:Network Flows. Fornisce informazioni si qualsiasi specifica regola di flusso, user-defined.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;All Protocols:Traffic&lt;/strong&gt;. Visualizza una tabella che elenca per ciascun host rilevato, quanti dati quell&amp;#8217; host abbia trasferito, quale percentuale del traffico totale rappresenta dal momento in cui ntop è andato in esecuzione, e la quantità di traffico inviato da alcuni protocolli chiave (TCP, UDP, ICMP, ICMPv6, DLC, IPC, RARP, Appletalk, GRE, IPv6, OSPF, IPSec ed altri protocolli).&lt;br /&gt;
&lt;strong&gt;All Protocols: Throughput&lt;/strong&gt;. Visualizza una tabella relativa al network throughput. Si possono limitare tali informazioni solamente agli hosts locali oppure solo agli hosts remoti oppure tutti gli hosts e per ciascuna opzione, si possono vedere i dati inviati, i dati ricevuti o la totalità dei data sia inviati che ricevuti.&lt;br /&gt;
&lt;strong&gt;All Protocols:Activity&lt;/strong&gt;. Visualizza una tabella che mostra il traffico orario per host. Il valore percentuale per un dato host è il traffico per quell&amp;#8217;host durante quell&amp;#8217;ora diviso il traffico totale per quell&amp;#8217; host nelle ultime 24 ore.&lt;/p&gt;
&lt;p&gt;Riprenderemo il discorso la prossima volta&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/linux/introduzione-a-ntop/feed</wfw:commentRss>
		</item>
		<item>
		<title>Ottima musiconhold per Asterisk</title>
		<link>http://www.voipandhack.it/archives/asterisk/ottima-musiconhold-per-asterisk</link>
		<comments>http://www.voipandhack.it/archives/asterisk/ottima-musiconhold-per-asterisk#comments</comments>
		<pubDate>Mon, 09 Aug 2010 23:56:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Asterisk]]></category>

		<category><![CDATA[Telefonia]]></category>

		<category><![CDATA[Tools]]></category>

		<category><![CDATA[asterisk pbx]]></category>

		<category><![CDATA[jamendo]]></category>

		<category><![CDATA[moh]]></category>

		<category><![CDATA[mpg123]]></category>

		<category><![CDATA[musicohold]]></category>

		<category><![CDATA[ogg123]]></category>

		<category><![CDATA[sox]]></category>

		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1647</guid>
		<description><![CDATA[Una funzionalità decisamente secondaria dal punto di vista funzionale, ma di grande importanza pratica come la musica di attesa per un pbx (musiconhold nel modo Asterisk), pone dei problemi non indifferenti dal punto di vista legale, per motivi ovviamente collegati a farraginosi principi di rispetto dei diritti d&#8217;autore e di riproduzione.
È pur vero che vi [...]]]></description>
			<content:encoded><![CDATA[<p>Una funzionalità decisamente secondaria dal punto di vista funzionale, ma di grande importanza pratica come la musica di attesa per un pbx (musiconhold nel modo Asterisk), pone dei problemi non indifferenti dal punto di vista legale, per motivi ovviamente collegati a farraginosi principi di rispetto dei diritti d&#8217;autore e di riproduzione.<span id="more-1647"></span><br />
È pur vero che vi è una scarsa probabilità di incorrere nelle maglie di tale normativa, ma tale eventualità non va esclusa, e potrebbe accompagnarsi a spiacevoli conseguenze.<br />
Da parte mia ho trovato un modo ottenere della ottima musica di attesa utilizzando musica composta e normalmente distribuita attraverso criteri assimilabili a quelli che ispirano il software opensource.<br />
Esempi di tale musica sono rappresentati dalle raccolte e dalle stazioni radio predefinite in software come ad esempio rhythmbox, normalmente presenti in alcune distribuzioni Linux, come Ubuntu.<br />
In tal caso è mplto semplice utilizzare direttamente brani musicali come quelli messi a disposizione da <a href="www.jamendo.com/it/">Jamendo</a>, e distribuiti secondo licenza Creative Commons.<br />
Questi brani hanno ad esempio la caratteristica di essere accessibili come streaming audio riferiti ad url del tipo:<br />
<code><br />
http://api.jamendo.com/get2/stream/track/redirect<br />
</code><br />
e filename del tipo:<br />
<code><br />
?id=552462&amp;streamencoding=ogg2<br />
</code><br />
e possono essere utilizzati come musica di attesa dopo aver definito in musiconhold.conf una sezione come questa:</p>
<pre>[jamendo]
mode = custom
application=/usr/bin/mpg123 -q -s --mono -r 8000 -f 8192 -b 0 \
            http://api.jamendo.com/get2/stream/track/redirect?id=552462</pre>
<p>e in extension conf, cioè nel dialplan, una invocazione tipo questa:<br />
<code><br />
exten =&gt; 5000,1,Answer<br />
exten =&gt; 5000,2,MusicOnHold(jamendo)<br />
</code><br />
comportandosi di fatto come file mp3 (se si tralascia infatti la codifica ogg)</p>
<p>Un&#8217; altra ottima soluzione è quella di utilizzare come origine una stazione radio, come quella ottima di musica ambient riferita dalla url http://ubuntu.hbr1.com:19800/ambient.ogg, e generare dei file sonori (ad esempio di 5 Mbyte) tramite un comando come:</p>
<pre># /usr/bin/ogg123 -q -b 512 -p 64 -d wav -f - http://ubuntu.hbr1.com:19800/ambient.ogg \

  | sox -t wav - -r 8000 -c 1 -t wav /var/lib/asterisk/moh/ambient/ambient.wav vol 0.3</pre>
<p>da posizionarsi in una directory apposita (qui /var/lib/asterisk/moh/ambient) cui fare riferimento, in musiconhold.conf, con una sezione del tipo:<br />
<code><br />
[ambient]<br />
mode=files<br />
directory=moh/ambient/<br />
</code><br />
e in extension conf, con una invocazione come:<br />
<code><br />
exten =&gt; 6000,1,Answer<br />
exten =&gt; 6000,2,MusicOnHold(ambient)<br />
</code></p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="Ottima musiconhold per Asterisk"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/asterisk/ottima-musiconhold-per-asterisk"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2010-08-10 01:08:55"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;Una funzionalità decisamente secondaria dal punto di vista funzionale, ma di grande importanza pratica come la musica di attesa per un pbx (musiconhold nel modo Asterisk), pone dei problemi non indifferenti dal punto di vista legale, per motivi ovviamente collegati a farraginosi principi di rispetto dei diritti d&amp;#8217;autore e di riproduzione.&lt;span id=&quot;more-1647&quot;&gt;&lt;/span&gt;&lt;br /&gt;
È pur vero che vi è una scarsa probabilità di incorrere nelle maglie di tale normativa, ma tale eventualità non va esclusa, e potrebbe accompagnarsi a spiacevoli conseguenze.&lt;br /&gt;
Da parte mia ho trovato un modo ottenere della ottima musica di attesa utilizzando musica composta e normalmente distribuita attraverso criteri assimilabili a quelli che ispirano il software opensource.&lt;br /&gt;
Esempi di tale musica sono rappresentati dalle raccolte e dalle stazioni radio predefinite in software come ad esempio rhythmbox, normalmente presenti in alcune distribuzioni Linux, come Ubuntu.&lt;br /&gt;
In tal caso è mplto semplice utilizzare direttamente brani musicali come quelli messi a disposizione da &lt;a href=&quot;www.jamendo.com/it/&quot;&gt;Jamendo&lt;/a&gt;, e distribuiti secondo licenza Creative Commons.&lt;br /&gt;
Questi brani hanno ad esempio la caratteristica di essere accessibili come streaming audio riferiti ad url del tipo:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
http://api.jamendo.com/get2/stream/track/redirect&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
e filename del tipo:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
?id=552462&amp;amp;streamencoding=ogg2&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
e possono essere utilizzati come musica di attesa dopo aver definito in musiconhold.conf una sezione come questa:&lt;/p&gt;
&lt;pre&gt;[jamendo]
mode = custom
application=/usr/bin/mpg123 -q -s --mono -r 8000 -f 8192 -b 0 \
            http://api.jamendo.com/get2/stream/track/redirect?id=552462&lt;/pre&gt;
&lt;p&gt;e in extension conf, cioè nel dialplan, una invocazione tipo questa:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
exten =&amp;gt; 5000,1,Answer&lt;br /&gt;
exten =&amp;gt; 5000,2,MusicOnHold(jamendo)&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
comportandosi di fatto come file mp3 (se si tralascia infatti la codifica ogg)&lt;/p&gt;
&lt;p&gt;Un&amp;#8217; altra ottima soluzione è quella di utilizzare come origine una stazione radio, come quella ottima di musica ambient riferita dalla url http://ubuntu.hbr1.com:19800/ambient.ogg, e generare dei file sonori (ad esempio di 5 Mbyte) tramite un comando come:&lt;/p&gt;
&lt;pre&gt;# /usr/bin/ogg123 -q -b 512 -p 64 -d wav -f - http://ubuntu.hbr1.com:19800/ambient.ogg \

  | sox -t wav - -r 8000 -c 1 -t wav /var/lib/asterisk/moh/ambient/ambient.wav vol 0.3&lt;/pre&gt;
&lt;p&gt;da posizionarsi in una directory apposita (qui /var/lib/asterisk/moh/ambient) cui fare riferimento, in musiconhold.conf, con una sezione del tipo:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
[ambient]&lt;br /&gt;
mode=files&lt;br /&gt;
directory=moh/ambient/&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
e in extension conf, con una invocazione come:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
exten =&amp;gt; 6000,1,Answer&lt;br /&gt;
exten =&amp;gt; 6000,2,MusicOnHold(ambient)&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/asterisk/ottima-musiconhold-per-asterisk/feed</wfw:commentRss>
<enclosure url="http://api.jamendo.com/get2/stream/track/redirect" length="1877496" type="audio/mpeg" />
<enclosure url="http://api.jamendo.com/get2/stream/track/redirect?id=552462" length="2794394" type="audio/mpeg" />
		</item>
		<item>
		<title>GSM ancora sotto scacco</title>
		<link>http://www.voipandhack.it/archives/asterisk/gsm-ancora-sotto-scacco</link>
		<comments>http://www.voipandhack.it/archives/asterisk/gsm-ancora-sotto-scacco#comments</comments>
		<pubDate>Fri, 06 Aug 2010 09:16:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Asterisk]]></category>

		<category><![CDATA[Hacking]]></category>

		<category><![CDATA[Sicurezza]]></category>

		<category><![CDATA[Telefonia]]></category>

		<category><![CDATA[defcon]]></category>

		<category><![CDATA[gsm]]></category>

		<category><![CDATA[mitm]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[openBTS]]></category>

		<category><![CDATA[privacy]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[vulnerabilitÃ ]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1644</guid>
		<description><![CDATA[A distanza di pochi mesi dalla notizia che la crittografia GSM era stata violata, con conseguenti grandi allarmismi, il GSM è tornato agli onori delle cronache per una vulnerabilità non proprio nuova, ma che era ritenuta sfruttabile solo dagli organismi di intelligence e di polizia, per i costi molto elevati e la impossibilità di acquistare [...]]]></description>
			<content:encoded><![CDATA[<p>A distanza di pochi mesi dalla notizia che la crittografia GSM era stata violata, con conseguenti grandi allarmismi, il GSM è tornato agli onori delle cronache per una vulnerabilità non proprio nuova, ma che era ritenuta sfruttabile solo dagli organismi di intelligence e di polizia, per i costi molto elevati e la impossibilità di acquistare legalmente la relativa tecnologia da parte dei comuni mortali.<span id="more-1644"></span></p>
<p>La vulnerabilità consiste nel fatto che non esiste alcuna reciproca autenticazione tra un terminale mobile e la rete. Solo il primo si autentica, inviando alla cella con cui si associa il proprio IMSI (International Mobile Subscriber Identity), un numero di 15 cifre memorizzato nella SIM.<br />
La mancanza di reciproca autenticazione apre le porte ad attacchi di tipo Man-in-the-Middle (MitM).<br />
Non sarebbe un grosso problema, dato che il traffico viene crittato, se non fosse che il protocollo GSM consente alle celle la possibilità di forzare i cellulari connessi a disattivare la crittografia.<br />
L&#8217;attacco MitM può avvenire in una situazione nella quale un elemento hardware sia in grado di interagire coi cellulari GSM con le stesse modalità con cui lo fa la cella del provider (un device di questo tipo è comunemente noto come IMSI-catcher).<br />
Come conseguenza dell&#8217;impiego di un IMSI-catcher, informazioni sensibili come IMSI, IMEI, e numeri di telefono possono venire catturati. È anche possibile la registrazione dell&#8217; audio di una chiamata (in una sola direzione).</p>
<p>Ne ha dato una pubblica dimostrazione, nell&#8217; ambito dell&#8217;ultimo <a href="http://www.defcon.org/">Defcon</a>, il ricercatore <a href="http://www.tombom.co.uk/blog/">Chris Paget</a>, che per l&#8217;occasione ha allestito un IMSI-catcher del costo di 1500 dollari (per il transceiver, due antenne direzionali, un notebook) e utilizzando, per la parte software <a href="http://openbts.sourceforge.net/">OpenBTS</a> (un GSM access point software), ed Asterisk come gateway tra rete GSM e rete VoIP.</p>
<p>Nel corso della dimostrazione almeno 30 telefoni si sono collegati alla &#8220;cella&#8221;. Sono stati registrati i relativi IMSI, IMEI, tutti i numeri che sono stati chiamati, e, ovviamente, l&#8217;audio di tutte le chiamate effettuate (per un totale di 17 chiamate).<br />
Nessuno dei proprietari dei cellulari ha notato alcunché di strano, nonostante la mancanza di crittografia sulla rete.</p>
<p>Le slides dell&#8217;evento sono disponibili in formato Open Office a <a href="http://www.tombom.co.uk/cellphonespying.odp">questo indirizzo</a>.</p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="GSM ancora sotto scacco"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/asterisk/gsm-ancora-sotto-scacco"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2010-08-06 11:08:39"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;A distanza di pochi mesi dalla notizia che la crittografia GSM era stata violata, con conseguenti grandi allarmismi, il GSM è tornato agli onori delle cronache per una vulnerabilità non proprio nuova, ma che era ritenuta sfruttabile solo dagli organismi di intelligence e di polizia, per i costi molto elevati e la impossibilità di acquistare legalmente la relativa tecnologia da parte dei comuni mortali.&lt;span id=&quot;more-1644&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;La vulnerabilità consiste nel fatto che non esiste alcuna reciproca autenticazione tra un terminale mobile e la rete. Solo il primo si autentica, inviando alla cella con cui si associa il proprio IMSI (International Mobile Subscriber Identity), un numero di 15 cifre memorizzato nella SIM.&lt;br /&gt;
La mancanza di reciproca autenticazione apre le porte ad attacchi di tipo Man-in-the-Middle (MitM).&lt;br /&gt;
Non sarebbe un grosso problema, dato che il traffico viene crittato, se non fosse che il protocollo GSM consente alle celle la possibilità di forzare i cellulari connessi a disattivare la crittografia.&lt;br /&gt;
L&amp;#8217;attacco MitM può avvenire in una situazione nella quale un elemento hardware sia in grado di interagire coi cellulari GSM con le stesse modalità con cui lo fa la cella del provider (un device di questo tipo è comunemente noto come IMSI-catcher).&lt;br /&gt;
Come conseguenza dell&amp;#8217;impiego di un IMSI-catcher, informazioni sensibili come IMSI, IMEI, e numeri di telefono possono venire catturati. È anche possibile la registrazione dell&amp;#8217; audio di una chiamata (in una sola direzione).&lt;/p&gt;
&lt;p&gt;Ne ha dato una pubblica dimostrazione, nell&amp;#8217; ambito dell&amp;#8217;ultimo &lt;a href=&quot;http://www.defcon.org/&quot;&gt;Defcon&lt;/a&gt;, il ricercatore &lt;a href=&quot;http://www.tombom.co.uk/blog/&quot;&gt;Chris Paget&lt;/a&gt;, che per l&amp;#8217;occasione ha allestito un IMSI-catcher del costo di 1500 dollari (per il transceiver, due antenne direzionali, un notebook) e utilizzando, per la parte software &lt;a href=&quot;http://openbts.sourceforge.net/&quot;&gt;OpenBTS&lt;/a&gt; (un GSM access point software), ed Asterisk come gateway tra rete GSM e rete VoIP.&lt;/p&gt;
&lt;p&gt;Nel corso della dimostrazione almeno 30 telefoni si sono collegati alla &amp;#8220;cella&amp;#8221;. Sono stati registrati i relativi IMSI, IMEI, tutti i numeri che sono stati chiamati, e, ovviamente, l&amp;#8217;audio di tutte le chiamate effettuate (per un totale di 17 chiamate).&lt;br /&gt;
Nessuno dei proprietari dei cellulari ha notato alcunché di strano, nonostante la mancanza di crittografia sulla rete.&lt;/p&gt;
&lt;p&gt;Le slides dell&amp;#8217;evento sono disponibili in formato Open Office a &lt;a href=&quot;http://www.tombom.co.uk/cellphonespying.odp&quot;&gt;questo indirizzo&lt;/a&gt;.&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/asterisk/gsm-ancora-sotto-scacco/feed</wfw:commentRss>
		</item>
		<item>
		<title>Asterisk SIP performances</title>
		<link>http://www.voipandhack.it/archives/linux/asterisk-sip-performances</link>
		<comments>http://www.voipandhack.it/archives/linux/asterisk-sip-performances#comments</comments>
		<pubDate>Tue, 03 Aug 2010 16:37:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Asterisk]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Telefonia]]></category>

		<category><![CDATA[Tools]]></category>

		<category><![CDATA[VoIP]]></category>

		<category><![CDATA[asterisk pbx]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[sip]]></category>

		<category><![CDATA[sipp]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://www.voipandhack.it/?p=1640</guid>
		<description><![CDATA[Vi è un metodo piuttosto semplice per misurare le performance del SIP channel driver in Asterisk, in termini di chiamate simultanee effettuabili e rapidità nella gestione delle chiamate in ingresso.
La conoscenza di tali limiti è di grande utilità nella implementazione di un PBX in ambienti estesi.
Questo test prevede, per il suo svolgimento, di una macchina [...]]]></description>
			<content:encoded><![CDATA[<p>Vi è un metodo piuttosto semplice per misurare le performance del SIP channel driver in Asterisk, in termini di chiamate simultanee effettuabili e rapidità nella gestione delle chiamate in ingresso.</p>
<p>La conoscenza di tali limiti è di grande utilità nella implementazione di un PBX in ambienti estesi.<span id="more-1640"></span></p>
<p>Questo test prevede, per il suo svolgimento, di una macchina Asterisk (IP 192.168.1.10), e di una seconda macchina (IP 192.168.1.12), connessa alla precedente in rete locale ethernet, sulla quale viene invece eseguito sipp, un tool Open Source per la generazione di traffico per il protocollo SIP.</p>
<p>Sul server asterisk, è necessaria la presenza di una sezione come la seguente nel file extensions.conf:<br />
<code><br />
[test_sipp]<br />
exten => _X.,1,Answer<br />
exten => _X.,n,Background(demo-instruct)<br />
exten => _X.,n,Hangup<br />
</code><br />
oppure come la seguente nel file extensions.ael:</p>
<pre>
context test_sipp
{
        _X. => {
                Answer();
                while (1) {
                        Background(demo-instruct);
                }
                Hangup();
        }
}
</pre>
<p>Sostanzialmente, ogni chiamata SIP in ingresso riceve risposta, ed il chiamante ascolta un file sonoro (per comodità viene utilizzato il file sonoro demo-instruct, presente nel package di base). In particolare, il test delega al chiamante l&#8217;hangup, consentendo in tal modo al tool sipp di predeterminare<br />
la durata di ciascuna chiamata.</p>
<p>Nel file sip.conf è presente una sezione simile:<br />
<code><br />
[sipp01]<br />
type=friend<br />
context=test_sipp<br />
host=192.168.1.12<br />
user=sipp<br />
directmedia=no<br />
disallow=all<br />
allow=ulaw<br />
</code><br />
con una configurazione dello UAC minimale (nessuna autenticazione e ulaw come codec utilizzato).</p>
<p>Per misurare l&#8217; impatto del traffico in ingresso sulla macchina Asterisk, è sufficiente una utility di sistema come vmstat, che offre una visuale della utilizzazione della CPU da parte di Asterisk.<br />
Il sintomo tipico del raggiungimento di valori limite da parte di Asterisk consiste nella totale utilizzazione della CPU (100%) e nella conseguente impossibilità di aumentare il carico di lavoro, cosa che si manifesta con timeouts ed altri problemi, fino al blocco totale. </p>
<p>È consigliabile effettuare il test in due modalità differenti: </p>
<p>La capacità di processare chiamate viene misurata con chiamate di durata estremamente breve, come in:<br />
<code><br />
# sipp -sn uac 192.168.1.10 -i 192.168.1.12 -s 22 -d 100 -l 250<br />
</code><br />
dove a sipp viene impartito di chiamare la macchina Asterisk (192.168.1.10) alla extension 22, con chiamate ciascuna della durata di 0.1 secondi, e con un limite di 250 chiamate simultanee.<br />
Le chiamate simultanee risulteranno la frequenza per secondo delle chiamate entranti diviso la durata di ciascuna chiamata, perciò 1 chiamata simultanea a 10 calls/sec, e 50 a 500 calls/sec.<br />
Il limite impostato a 250 implica che non si intende superare il limite di 2500 calls/sec in fase di test.</p>
<p>Sipp opera inizialmente con 10 calls/sec, ed è possibile aumentare granularmente tale frequenza tramite i tasti &#8216;*&#8217; o &#8216;+&#8217;.<br />
Quando si è prossimi al 100% nell&#8217;utilizzo della CPU sul server Asterisk, si avrà raggiunto il limite massimo.</p>
<p>Le chiamate simultanee possono invece venire quantificate con chiamate di lunga durata. Ad esempio:<br />
<code><br />
# sipp -sn uac 192.168.1.10 -i 192.168.1.12 -s 22 -d 90000 -l 270<br />
</code><br />
istruisce sipp a effettuare chiamate verso il server Asterisk della durata di un minuto e mezzo (90 sec).<br />
Il numero di chiamate simultanee crescerà fino a raggiungere il limite stabilito di 270.<br />
Se Asterisk sopravvive fino al raggiungimento di tale valore senza che la CPU raggiunga il 100% di utilizzo, si può interrompere il test e riprovare con un valore (-l) più alto.</p>
<div class="pdf24Plugin-cp-box"><form method="post" action="http://doc2pdf.pdf24.org/doc2pdf/wordpress.php" target="pdf24PopWin" onsubmit="window.open('about:blank', 'pdf24PopWin', 'scrollbars=yes,width=400,height=200,top=0,left=0'); return true;"><input type="hidden" name="blogCharset" value="UTF-8"/>
<input type="hidden" name="blogPosts" value="1"/>
<input type="hidden" name="blogUrl" value="http://www.voipandhack.it"/>
<input type="hidden" name="blogName" value="VoIP and Hacking"/>
<input type="hidden" name="blogValueEncoding" value="htmlSpecialChars"/>
<input type="hidden" name="postTitle_0" value="Asterisk SIP performances"/>
<input type="hidden" name="postLink_0" value="http://www.voipandhack.it/archives/linux/asterisk-sip-performances"/>
<input type="hidden" name="postAuthor_0" value="admin"/>
<input type="hidden" name="postDateTime_0" value="2010-08-03 18:08:29"/>
<input type="hidden" name="postContent_0" value="&lt;p&gt;Vi è un metodo piuttosto semplice per misurare le performance del SIP channel driver in Asterisk, in termini di chiamate simultanee effettuabili e rapidità nella gestione delle chiamate in ingresso.&lt;/p&gt;
&lt;p&gt;La conoscenza di tali limiti è di grande utilità nella implementazione di un PBX in ambienti estesi.&lt;span id=&quot;more-1640&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Questo test prevede, per il suo svolgimento, di una macchina Asterisk (IP 192.168.1.10), e di una seconda macchina (IP 192.168.1.12), connessa alla precedente in rete locale ethernet, sulla quale viene invece eseguito sipp, un tool Open Source per la generazione di traffico per il protocollo SIP.&lt;/p&gt;
&lt;p&gt;Sul server asterisk, è necessaria la presenza di una sezione come la seguente nel file extensions.conf:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
[test_sipp]&lt;br /&gt;
exten =&gt; _X.,1,Answer&lt;br /&gt;
exten =&gt; _X.,n,Background(demo-instruct)&lt;br /&gt;
exten =&gt; _X.,n,Hangup&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
oppure come la seguente nel file extensions.ael:&lt;/p&gt;
&lt;pre&gt;
context test_sipp
{
        _X. =&gt; {
                Answer();
                while (1) {
                        Background(demo-instruct);
                }
                Hangup();
        }
}
&lt;/pre&gt;
&lt;p&gt;Sostanzialmente, ogni chiamata SIP in ingresso riceve risposta, ed il chiamante ascolta un file sonoro (per comodità viene utilizzato il file sonoro demo-instruct, presente nel package di base). In particolare, il test delega al chiamante l&amp;#8217;hangup, consentendo in tal modo al tool sipp di predeterminare&lt;br /&gt;
la durata di ciascuna chiamata.&lt;/p&gt;
&lt;p&gt;Nel file sip.conf è presente una sezione simile:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
[sipp01]&lt;br /&gt;
type=friend&lt;br /&gt;
context=test_sipp&lt;br /&gt;
host=192.168.1.12&lt;br /&gt;
user=sipp&lt;br /&gt;
directmedia=no&lt;br /&gt;
disallow=all&lt;br /&gt;
allow=ulaw&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
con una configurazione dello UAC minimale (nessuna autenticazione e ulaw come codec utilizzato).&lt;/p&gt;
&lt;p&gt;Per misurare l&amp;#8217; impatto del traffico in ingresso sulla macchina Asterisk, è sufficiente una utility di sistema come vmstat, che offre una visuale della utilizzazione della CPU da parte di Asterisk.&lt;br /&gt;
Il sintomo tipico del raggiungimento di valori limite da parte di Asterisk consiste nella totale utilizzazione della CPU (100%) e nella conseguente impossibilità di aumentare il carico di lavoro, cosa che si manifesta con timeouts ed altri problemi, fino al blocco totale. &lt;/p&gt;
&lt;p&gt;È consigliabile effettuare il test in due modalità differenti: &lt;/p&gt;
&lt;p&gt;La capacità di processare chiamate viene misurata con chiamate di durata estremamente breve, come in:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# sipp -sn uac 192.168.1.10 -i 192.168.1.12 -s 22 -d 100 -l 250&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
dove a sipp viene impartito di chiamare la macchina Asterisk (192.168.1.10) alla extension 22, con chiamate ciascuna della durata di 0.1 secondi, e con un limite di 250 chiamate simultanee.&lt;br /&gt;
Le chiamate simultanee risulteranno la frequenza per secondo delle chiamate entranti diviso la durata di ciascuna chiamata, perciò 1 chiamata simultanea a 10 calls/sec, e 50 a 500 calls/sec.&lt;br /&gt;
Il limite impostato a 250 implica che non si intende superare il limite di 2500 calls/sec in fase di test.&lt;/p&gt;
&lt;p&gt;Sipp opera inizialmente con 10 calls/sec, ed è possibile aumentare granularmente tale frequenza tramite i tasti &amp;#8216;*&amp;#8217; o &amp;#8216;+&amp;#8217;.&lt;br /&gt;
Quando si è prossimi al 100% nell&amp;#8217;utilizzo della CPU sul server Asterisk, si avrà raggiunto il limite massimo.&lt;/p&gt;
&lt;p&gt;Le chiamate simultanee possono invece venire quantificate con chiamate di lunga durata. Ad esempio:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# sipp -sn uac 192.168.1.10 -i 192.168.1.12 -s 22 -d 90000 -l 270&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
istruisce sipp a effettuare chiamate verso il server Asterisk della durata di un minuto e mezzo (90 sec).&lt;br /&gt;
Il numero di chiamate simultanee crescerà fino a raggiungere il limite stabilito di 270.&lt;br /&gt;
Se Asterisk sopravvive fino al raggiungimento di tale valore senza che la CPU raggiunga il 100% di utilizzo, si può interrompere il test e riprovare con un valore (-l) più alto.&lt;/p&gt;
"/>
<table cellspacing="0" cellpadding="0" border="0" width="100%" ><tr><td align="left">Send post as <a href="http://en.pdf24.org" target="_blank">PDF</a> to <input class="pdf24Plugin-cp-input" type="text" name="sendEmailTo" value="Enter email address" onMouseDown="this.value = '';"/> <input class="pdf24Plugin-cp-submit" type="submit" value="Send"/></td><td align="right"><a href="http://en.pdf24.org" target="_blank" title="PDF | PDF Creator | PDF Converter"><img src="http://www.pdf24.org/images/sheep_16x16.gif" alt="PDF | PDF Creator | PDF Converter" border="0"/></a></td></tr></table></form></div>]]></content:encoded>
			<wfw:commentRss>http://www.voipandhack.it/archives/linux/asterisk-sip-performances/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
