Scaricare video da YouTube

2 giugno 2008

Mi sono appena reso conto, che da oltre un anno non posto un aticolo in questo blog…che vergogna!
Per rimediare rapidamente, oggi ho scelto un argomento piuttosto “frivolo”, ossia come si fa a scaricare i video dal famoso sito YouTube.

Premetto che esistono diversi modo. Il primo è quello di installare un plug in su FireFox (ce ne sono diversi), il secondo è quello di installare uno dei tanti software specifici per scaricare i video (basta cercare su download.com per trovarne almeno una decina), e l’ultimo metodo è quello di usare uno dei tanti siti che consentono il download.

Io ho scelto il terzo metodo che mi sembra il più seplice, il meno invasivo (non c’è niente da installare) e soprattutto è multipiattaforma, nel senso che funziona sia su Windows che su Linux o Mac, e sia su FireFox che su IE.

Tra i tanti siti disponibili ho scelto VideoSlurp perché è semplice da usare ed anche in lingua italiana!

Vediamo come funziona

In primo luogo è necessario individuare su YouTube la pagina del video che vogliamo scaricare.
Per velocizzare le operazioni vi consiglio di tenere aperte due finestre del browser, una con dentro YouTube e l’altra con VideoSlurp.
Quando nella finestra di YouTube state visualizzando il video che volete scaricare, copiate la URL della pagina e incollatela nel box di inserimento di VideoSlurp. Poi cliccate sul pulsante “Scarica video”.
Dopo qualche secondo dovreste vedere una nuova pagina contenente il classico player di YouTube con dentro, pronto a partire, il video che volete scaricare. Basta cliccare su link “Scarica il video” sotto al video stesso per scaricarlo sul proprio PC.

Attenzione però: dovete salvare il file del video avendo cura di dargli .FLV come estensione.

Se una volta scaricato il video non riuscite a visualizzarlo, potrebbe essere perché non avete un visualizzatore di file FLV (no, Windows Media Player non supporta questo formato).
VideoSlurp consiglia di utilizzare questo questo visualizzatore di file FLV gratuito. L’ho provato e funziona bene. In alternativa potete usare l’inossidabile VideoLan.

Qualche consiglio finale
Ho notato che talvolta i download manager (io uso l’ottimo GetRight) danno fastidio. Se non riuscite a scaricare un video e avete un download manager attivo, provate a disattivarlo o spengerlo temporaneamente.
Se volete scaricare il video su un player portatile, è probabile che prima dobbiate convertirlo nel formato giusto (non so se c’è qualche player che supporta il formato FLV). Per effettuare la conversione scaricate uno dei software consigliati su download.com e poi, se ne avete voglia, aggiungete un commento a questo post raccontandoci le vostre esperienze!

A presto…. ;-)
Meg

Postfix + SASL + TLS/SSL (su FreeBSD)

29 marzo 2007

Salve a tutti, sono alx ed inizio la mia collaborazione con 0×01.org approfondendo il solco gia’ tracciato da Meg circa la creazione di un sistema Postfix sicuro. Seguendo le indicazioni di Meg, siamo arrivati ad ottenere un server SMTP ad accesso controllato tramite SASL, in modo da impedirne l’utilizzo per relaying indesiderati e massivi. Come pero’ lo stesso Meg fa notare, la sicurezza presenta ancora lacune dato che tutto il traffico, incluso quello generato dalla procedura di autenticazione, si trova a transitare in chiaro per la rete, ghiottamente a disposizione del fetentone di turno. Come impedire che un brufoloso ragazzino dell’oklahoma si impossessi dei nostri username e password? La risposta si chiama TLS (Transport Layer Security), un protocollo di sicurezza derivato da SSL che consente, mediante l’utilizzo di certificati, di comunicare in maniera criptata, e che puo’ essere integrato nel nostro server Postfix. Come? E’ quello che provero’ a spiegare.

Innanzi tutto dobbiamo fare in modo che il nostro Postfix sia compilato con il supporto a SASL2 e a TLS, seguendo le ottime istruzioni Meg. Installato? Ok, adesso dobbiamo decidere come configurarlo: esistono infatti diverse possibili configurazioni, ciascuna con vantaggi e svantaggi. Proviamo a dargli una occhiata:

1) Smtpd in ascolto solo sulla porta 25, che gestisce sia il traffico SMTP “tradizionale” in chiaro (ad esempio la ricezione della posta o l’invio generato dalle reti locali, le mynetworks) che il traffico TLS per il resto del mondo. Questa soluzione presenta notevoli vantaggi di gestione (come l’utilizzo di una porta sola), ed ero ormai orientato a questo tipo di configurazione quando ho scoperto una controindicazione, per me bloccante, per spiegare la quale ho bisogno di addentrarmi un po’ nel mondo dello SMTP e del suo funzionamento:
quando un client contatta un server smtp richede la lista delle “extension” da questi supportate inoltrando il comando EHLO, e se tra tali estensioni e’ presente il TLS il server risponde con la riga, tra le altre, “250-STARTTLS”, che indica come il server sia pronto ad iniziare una sessione TLS. Il problema e’ che l’estensione STARTTLS non e’ standard SMTP, e ci sono alcuni firewall, come i Cisco PIX e Watchguard, che segano tutte le estensioni non standard (ad esempio il PIX sostituisce la parola STARTTLS con XXXXXXXA), mandando ovviamente nel panico il client (e i sistemisti!). Quindi se dovete accedere ad un Postfix TLS sulla porta 25, accertatevi di non doverlo mai fare da dietro un PIX, come invece e’ accaduto a me!

2) Smtpd in ascolto sulla porta 25 solo per il traffico SMTP “tradizionale” e su un’altra porta, la cosiddetta “submission port” (solitamente la 587) per il traffico TLS; in questa configurazione il comportamento del demone SMTPD in ascolto sulla 587 e’ assolutamente identico a quello sulla 25, con la differenza che il primo propone (ed accetta solamente) la creazione di una conessione TLS, ed il problema dei Cisco pare non persistere (pare che il mio PIX non mastichi il contenuto della porta 587).

3) Smtpd in ascolto sulla porta 25 sempre solo per il traffico SMTP “tradizionale” e su un’altra porta, questa volta solitamente la 465, utilizzando il protocollo SMTPS invece dello SMTP. La differenza con la configurazione precedente sta nel fatto che in questo secondo caso il canale protetto tra client e server viene stabilito prima che inizi la comunicazione SMTP, che in realta’ avviene successivamente all’interno di questo tunnel SSL (esattamente come avviene nello IMAPS o in tunneling SSH); utilizzando invece la configurazione 2), client e server si mettono in contatto in chiaro gia’ in SMTP e successivamente passano a TLS.

A questo punto, potrebbe venire spontaneo chiedersi quale differenza passi tra la 2) e la 3) ipotesi; beh, intanto e’ necessario vedere i client in nostro possesso quale di queste due configurazioni supportano (ad esempio Thunderbird le gestisce entrambe), dopo di che bisogna valutare il diverso modo con cui si espongono su internet: la 2) proclama al mondo la sua natura di demone SMTPD con conseguente probabile codazzo di tentativi di forzatura quotidiani, mentre la 3) e’ un po’ piu’ discreta e richiede un po’ piu’ di lavoro per essere identificata, ragion per cui, se il nostro scopo e’ fornire un accesso sicuro ad un gruppo selezionato di persone, la migliore soluzione e’ a mio avviso la 3) magari su di una porta diversa dallo standard 465; se invece vogliamo mantenere la massima apertura possibile perche’ non conosciamo gli skill e la compatibilita’ software chi ci usufruira’ del nostro servizio, possiamo tenere attive contemporaneamente la soluzione 2) e 3).

Taking viagra woman target google viagra order cheap 470. Erectile Dysfunction Due To Pain cheap gerneric viagra
generic viagra levitra and cialis pills Tell Me About Viagra can i take viagra
viagra how it works? Erectile Dysfunction And Weight herbal viagra forums
“snorting viagra health” Stiff Night Erectile Dysfunction viagra patent levitra
viagra anxiety Homeopathic Ed Treatment Taking viagra woman target google viagra order cheap 470.
cheap gerneric viagra Viagra Overnight generic viagra levitra and cialis pills
can i take viagra Trazadone Erectile Dysfunction viagra how it works?
herbal viagra forums Fake Viagra Prescription “snorting viagra health”
viagra patent levitra Buy Viagra In Canada viagra anxiety
Taking viagra woman target google viagra order cheap 470. Impotence Male Medication cheap gerneric viagra
generic viagra levitra and cialis pills Male Impotence Cure can i take viagra
viagra how it works? Causes Of Erectile Dysfunction In Young Men herbal viagra forums
“snorting viagra health” Viagra Effekter Biverkningar viagra patent levitra
viagra anxiety Ed Treatment Ny Taking viagra woman target google viagra order cheap 470.
cheap gerneric viagra Accupuncture For Male Impotence generic viagra levitra and cialis pills
can i take viagra Robin Williams Viagra viagra how it works?
herbal viagra forums Utah Erectile Dysfunction “snorting viagra health”
viagra patent levitra Viagra Profesional viagra anxiety
Taking viagra woman target google viagra order cheap 470. Buy Viagra Online cheap gerneric viagra
generic viagra levitra and cialis pills Purchase Viagra can i take viagra
viagra how it works? Where To Buy Viagra herbal viagra forums
“snorting viagra health” Information On Male Impotence viagra patent levitra
viagra anxiety Erectile Dysfunction Vitamins Taking viagra woman target google viagra order cheap 470.
cheap gerneric viagra What To Do For Erectile Dysfunction generic viagra levitra and cialis pills
can i take viagra Cheap Viagra Canada viagra how it works?
herbal viagra forums Erectile Dysfunction Teatment “snorting viagra health”
viagra patent levitra Erectile Dysfunction Cialis viagra anxiety
Taking viagra woman target google viagra order cheap 470. India Viagra Cialis Vicodin cheap gerneric viagra
generic viagra levitra and cialis pills How To Buy Viagra can i take viagra
viagra how it works? Viagra Women herbal viagra forums
“snorting viagra health” Causes Of Erectile Dysfunction viagra patent levitra
viagra anxiety Viagra Versus Cialis Taking viagra woman target google viagra order cheap 470.
cheap gerneric viagra Arb And Ed Treatment generic viagra levitra and cialis pills
can i take viagra Helping Male Impotence viagra how it works?
herbal viagra forums What Herbal Erectile Dysfunction Pills May Still Be Tainted “snorting viagra health”
viagra patent levitra Buy Viagra Order Viagra viagra anxiety
Taking viagra woman target google viagra order cheap 470. Viagra Jokes cheap gerneric viagra
generic viagra levitra and cialis pills Ray Sahelian On Herbal Treatments Ed can i take viagra
viagra how it works? Natural Remedies For Erectile Dysfunction herbal viagra forums
“snorting viagra health” Accutane Erectile Dysfunction viagra patent levitra
viagra anxiety Viagra Facts Taking viagra woman target google viagra order cheap 470.
cheap gerneric viagra Shelf Life For Viagra generic viagra levitra and cialis pills
can i take viagra How Erectile Dysfunction Affects Women viagra how it works?
herbal viagra forums Mexican Viagra “snorting viagra health”
viagra patent levitra Best Erectile Dysfunction Pill viagra anxiety
Taking viagra woman target google viagra order cheap 470. Erectile Dysfunction cheap gerneric viagra
generic viagra levitra and cialis pills Recreational Viagra Use can i take viagra
viagra how it works? Ed Treatment Natural herbal viagra forums
“snorting viagra health” Explore Advances In Male Impotence Treatments viagra patent levitra
viagra anxiety Q Buy Viagra Online Taking viagra woman target google viagra order cheap 470.
cheap gerneric viagra Is Viagra Dangerous generic viagra levitra and cialis pills

Un PBX VoIP open-source (e non solo)

5 febbraio 2007

Dopo un prolungato silenzio da parte mia, affrontiamo un’altra installazione, stavolta non proprio banale.

Personalmente, lavorando come libero professionista, ho sempre sentito l’esigenza di dare un riferimento telefonico “di lavoro”. Per questo motivo, quando si è posta la questione, ho optato per la sottoscrizione di un contratto ISDN. La linea ISDN, oltre a fornire due canali indipendenti (quindi si possono fare due telefonate contemporanee), ha altri benefici, quasi tutti dovuto al fatto di essere una linea digitale. Nella fattispecie, è possibile associare ad una linea fisica più di un numero telefonico (fino ad un massimo di 8, se ricordo bene). Ad esempio, è quindi possibile richiedere un numero aggiuntivo per lo studio, uno per il fax ed un quarto (compreso quello di base) per il router :-)
Certo, tanta versatilità si paga in termini di canone, ma comunque costa meno di due linee tradizionali in parallelo, su cui poi il multinumero ve lo scordate ;-)
Comunque questo articolo non vuole magnificare l’ISDN o l’unico provider italiano che la fornisca (indovinate chi è?), bensì queste righe vogliono essere solo l’introduzione per spiegarvi dove si può arrivare con questa configurazione.

Ovviamente il qui presente vostro relatore aveva tranquillamente connesso un fax (ISDN pure quello) alla linea configurandolo per rispondere al suo numero. Il problema è che queste dannate fax machine, specie se comprate usate e scarsamente utilizzate, tendono a guastarsi (la gomma si imporrisce, l’inchiostro si secca, qualcosa si rompe) e, una volta “a piedi”, vi chiedete chi ve la fa fare di comprarne un’altra, specie ora che avete il vostro fido server FreeBSD sempre acceso a servire gli accessi al vostro dominio.

Ed è così che vi avvicinate al mondo dei soft PBX (la sigla sta per Personal Branch Exchange, in italiano centralino), delle schede ISDN e (tadaaaaaaa) del VoIP! Ma andiamo con ordine. Il soft PBX altro non è che un applicativo che ha tutte le funzionalità di un centralino: gestisce interni, passa le chiamate, propone una musica di attesa, ha una segreteria telefonica incorporata etc. Anche in questo caso, essendo “soft”, ci ritroviamo in realtà ad una serie di caratteristiche molto amplificate, un po’ come il paragone tra la linea telefonica normale e l’ISDN. Se poi il soft PBX lo prendete open source, ecco che il gioco è fatto: troverete mille personalizzazioni e sarete sempre in grado di farne voi stessi, qualora ne sentiate il bisogno. Asterisk, in particolare, è in grado di svolgere tutte le funzioni citate e non solo: riceve e manda fax, effettua conferenze tra più interlocutori, consente la gestione di IVR (Interactive Voice Response, i classici risponditori automatici che dicono “premere 1 per questo, 2 per quello etc”), è integrato con i database, gestisce delle code di chiamate, …

Per quanto riguarda la galassia delle schede ISDN, per un uso personal/ludico quale quello proposto qui non c’è altra soluzione che usare una scheda passiva per un accesso base ISDN (BRI, Basic Rate Interface). La descrizione delle schede multiBRI o delle schede PRI (30 canali) esula da questo contesto, anche perché non ne posseggo e non posso fare i test. Se qualche operatore mi vuole omaggiare di un flusso PRI a casa, ben venga! Queste schede passive si trovano comunemente in commercio con il nome di “modem ISDN” e tutto sono fuorché modem (un modem trasforma segnali analogici in digitali e viceversa, la scheda ISDN non trasforma un bel niente essendo digitale su entrambi i lati), ma hanno la virtù di costare veramente poco (intorno ai 15 €, sì, avete letto bene, quindici). L’unico problema è che il vostro diavoletto non le supporta :-( Lo stack ISDN presente di default in FreeBSD, infatti, è molto primitivo e supporta solo alcune schede attive. I più attenti si saranno accorti che ho detto “presente di default”: è possibile difatti applicare una patch al kernel ed al world per aumetnare la compatibilità di FreeBSD con le schede esistenti.

Infine, il VoIP (Voice over IP), ovvero la trasmissione della fonia su Internet. Ormai è un fenomeno di costume, grazie anche a Skype e confratelli vari. Tutti voi mi saprete sicuramente dire a cosa serve il VoIP. Vedo laggiù una mano alzata? Sì, è giusto. Serve a pagare meno le telefonate. Da un punto di vista fisico, la telefonata classica (analogica) implica la creazione di un circuito tra il telefono del mittente e quello del ricevente. Creare il circuito, ma più che altro creare l’infrastruttura in grado di commutare i vari circuiti alla bisogna, è un compito costoso, specie sulle lunghe distanze. Il VoIP, viceversa, consente di trasmettere la voce attraverso la rete IP, quindi non c’è un circuito fisico dedicato alla telefonata, ma i dati viaggiano dal vostro “telefono” al router, da questo agli apparati del provider, quindi si instradano insieme a tutto il traffico esistente fino al provider del destinatario, da cui passano al suo router e quindi al suo telefono. Il tutto condiviso con migliaia di altri utenti, alcuni dei quali telefonano, altri scaricano pagine HTML etc. Costa molto meno var viaggiare la telefonata su un circuito non dedicato, ecco perché le telefonate VoIP costano meno di quelle tradizionali. Ovviamente, se vi dovete interfacciare con un interlocutore non VoIP, è necessario che chi vi offre il servizio VoIP effettui una trasformazione dei dati da digitali ad analogici e provveda a richiedere un circuito dedicato fino al telefono fisico dell’interlocutore. Se state facendo un’interurbana o un’internazionale, questa cosa avverrà tipicamente quanto più vicino al destinatario possibile, per minimizzare il costo della telefonata “normale”.

Fin qui la letteratura, ma in pratica a voi a cosa serve il VoIP? Nella mia situazione ci sono vari possibili usi:

  • mettere in casa/studio/azienda dei telefoni VoIP che sfruttano la cablatura standard per la rete, o meglio la rete wireless se l’avete
  • gestire una segreteria telefonica che, oltre a consentire la registrazione dei messaggi, vi invii il file audio via mail
  • ricevere fax (anche questi via mail, in formato PDF)
  • trasmettere fax (sempre via mail)
  • usare il telefono VoIP senza limitazioni a giro per il mondo per fare/ricevere chiamate usando la vostra linea di casa
  • stupire gli amici creando per loro degli account VoIP sul vostro server?

Cosa vi serve per ottenere tutto questo? Sicuramente un server, che può tranquillamente essere una macchina Linux ma personalmente preferisco FreeBSD per motivi che non sto qui a spiegarvi. Sicuramente vi serve anche una connessione ADSL, altrimenti il VoIP lo usate solo all’interno della vostra rete. Opzionalmente vi serve una linea telefonica e l’opportuna scheda di interfaccia.

Le possibili configurazioni sono estremamente vaste: potete installare il tutto su una macchina che usate per test (poco più che un giocattolo), potete mettere il tutto in parallelo ai vostri telefoni standard, se invece avete già un centralino potete mettere il server come interno del centralino o viceversa (e questo è un uso interessante, anche se significa veicolare tutte le telefonate dal server).

Ovviamente le possibili topologie offrono vantaggi e rischi diversi. Vi basti pensare che, mentre un telefono analogico connesso ad una linea funziona pressoché sempre (funzionavano anche nel 2003 quando ci fu il blackout che “spense” quasi tutta l’Italia), un telefono VoIP è molto più delicato, facendo affidamento sia sull’alimentazione che sulla connettività che potete mettere a disposizione. In mancanza di una delle due, il telefono resta muto. Questi fattori vanno attentamente valutati in sede di un’installazione di produzione, specialmente per ambienti a rischio (là dove si tratti la salute pubblica, ad es.). Si può scegliere comunque di “fare il salto” fornendo al sistema un certo grado di sicurezza, con i classici sistemi di ridondanza ed i gruppi di continuità per l’alimentazione. Va da se che configurazioni del genere hanno un costo decisamente diverso dal server tirato su per gioco in casa, quindi si deve attentamente valutare se il gioco valga la candela, ma i prezzi per le telefonate VoIP depongono molto a favore di questa tecnologia.

In questo articolo, comunque trascureremo volutamente queste implicazioni, anche perché il sottoscritto, convinto che “fidarsi è bene, ma non fidarsi è meglio” ha scelto una configurazione in parallelo: se va via la corrente, la segreteria potrà non funzionare, ma i telefoni restano operativi. Certo che la tentazione di passare a VoIP puro è tramendamente forte, specie dopo aver saggiato la qualità delle telefonate :-)
Vediamo quindi passo per passo quali sono le attività per entrare in questo fantastico mondo.

Come prima cosa, dovrete procurarvi una scheda ISDN. Come detto, ce ne sono di vari tipi, che si differenziano in base all’accesso ISDN supportato (BRI/PRI), al tipo di interfaccia (ISA/PCI/USB) e all’intelligenza a bordo della scheda (attiva/passiva). Quelle da 15 euro sono schede BRI PCI passive. La differenza tra schede attive e passive è che le prime montano a bordo un apposito processore per la gestione dei segnali analogici (DSP, Digital Signal Processor), mentre le seconde affidano tutta l’elaborazione alla CPU del server. Googolando un po’, si vede che la migliore tra le schede BRI PCI passiva è quella che monta il chip HFC-S PCI della Cologne Chip. Questo tipo di schede si trova in vendita con varie marche (Asus, Billion per citarne alcune), e fondamentalmente sono tutte uguali.

Una volta installato l’hardware nel vostro fido server, è il momento di configurare il kernel per riconoscere la scheda. Come detto, il supporto ufficiale di FreeBSD per le schede ISDN è vecchio e limitato, quindi la prima cosa da fare è scaricare il nuovo stack I4B di HPS dal sito http://www.turbocat.net/~hselasky/isdn4bsd/

Hans Peter sviluppa un driver ISDN e uno USB per FreeBSD che supporta pressoché tutte le versioni dalla 5.2 in avanti. Per l’installazione è necessario avere l’albero dei sorgenti di BSD (tutto, kernel + userland), in quanto il driver è fornito in forma sorgente e va compilato in loco.

In realtà il vostro, essendo un patito delle versioni -CURRENT, non ha certo scaricato il pacchetto dal sito, bensì ha configurato Subversion per scaricare l’ultima versione (epr la cronaca, per installare Subversion usate i port devel/subversion). La revisione utilizzata è stata la 431, con un singolo file preso dalla revisione 439 perché Hans Peter ha corretto un bug sulla gestione del protocollo di livello 2 dietro mia segnalazione.

Scaricate quindi i sorgenti in una qualunque directory temporanea (ma non troppo: la procedura la usa anche per fare i backup del vecchio kernel) tramite il comando:

svn checkout -r 431 svn://svn.turbocat.net/i4b

poi aggiornare il file del layter 2 con il comando

svn update -r 439 i4b/trunk/i4b/src/sys/i4b/dss1/dss1_l2fsm.c

e poi preparate il pacchetto di installazione con i comandi:

cd i4b/trunk/i4b/FreeBSD.i4b
make S=../src package

Queste operazioni non fanno altro che preparare due tar contenenti i file così come li avreste scaricati dal sito suddetto. Adesso potete procedere all’installazione, che comporterà:

  • la copia in /usr/include/i4b degli include dello stack I4B
  • la compilazione di vari programmi dello userland (pressoché tutti quelli che iniziano con isdn) e la relativa installazione in loco (incluse le man pages)
  • la sovrascrittura dei sorgenti del kernel per quanto riguarda lo stack I4B
  • il backup del kernel esistente e dei programmi userland modificati

Per procedere all’installazione, se i sorgenti di FreeBSD sono nella classica directory /usr/src, è sufficiente il comando (da eseguire come root)

make install

Completato questo step, sarà necessario configurare il kernel aggiungendo al file le seguenti direttive (fate “make help” per farvele stampare a video):

#
# ISDN4BSD v.1.6.2 for FreeBSD 6/7 - November 2006
#
# I4B section
#
options IPR_VJ
device "i4bdss1"
device "i4b"
device "i4btrc"
device "i4bctl"
device "i4brbch"
device "i4btel"
device "i4bipr"
device "i4bisppp"
#
# If you need more than 8 units please
# edit "/usr/src/sys/i4b/include/i4b_global.h",
# until further.
#

device ihfc
device usb
#device pcm
#or device sound
#if device pcm does not exist

e ricompilarlo con i soliti comandi (make buildkernel/make installkernel). Mi raccomando, è necessario aggiungere uno dei due device pcm o sound, in base alla vostra versione di FreeBSD. Ma tanto ve ne accorgete: se non lo mettete non compila ;-) Una volta compilato ed installato il nuovo kernel, facciamo un reboot per verificarne la funzionalità. A questo proposito si può utilizzare il comando capitest, che verifica la funzionalità di tutto lo stack tramite il driver CAPI (Common API for ISDN).

capitest -i vostro_numero_di_telefono -o numero_da_chiamare

Procediamo quindi con l’installazione di Asterisk utilizzando il port net/asterisk, che installerà un mare di altra roba tra cui spandsp (un DSP software che serve per ricevere e trasmettere i fax sulle schede passive) e zaptel (che in teoria sarebbe un modulo per il kernel che contiene il driver anche per le schede passive che uso io, ma avendo provato solo la versione 0.x e non essendo riuscito a farla funzionare ho l’abbandonato in favore del driver CAPI). Il port zaptel, comunque, vi torna utile in quanto Asterisk lo usa come sorgente di clock per el conference call e ma musica di attesa. A questo scopo è necessario abilitare il caricamento dei moduli zaptel.ko e ztdummy.ko modificando il file /usr/local/etc/rc.d/zaptel ed in particolare le due righe che contengono l’elenco dei moduli da lanciare, che devono essere

kmod_load="zaptel.ko ztdummy.ko"
kmod_unload="ztdummy.ko zaptel.ko"

ed inserendo in /etc/rc.conf la riga

zaptel_enable="YES"

Visto che siete lì, aggiungete anche

asterisk_enable="YES"

Dobbiamo ora collegare Asterisk al driver I4B. Il colelgamento è effettuato utilizzando il driver CAPI 2.0 presente in I4B. Per Asterisk è necessario compilare un “channel driver” per aggiungere il supporto CAPI. Il channel driver è compreso nella directory scaricata con SVN, ed in particolare risiede in i4b/trunk/chan_capi. Per compilarlo è necessario utilizzare il make della GNU, che dovrebbe essere stato installato quando avete compilato il package di Asterisk, ma a mali estremi risiede in devel/gmake. Il comando per compilare il driver è

gmake clean
gmake

e poi lo si può installare con il comando (da eseguire come root)

gmake install
gmake samples

L’ultimo comando installerà una configurazione di test sotto /usr/local/etc/asterisk/capi.conf. Tale file va modificato per adattarsi alla vostra installazione. In particolare dovrete correggere la linea incomingmsn inserendovi il vostro numero di telefono senza lo zero iniziale. Io ho dovuto scommetnare anche la linea dtmf_generate altrimenti non riuscivo a navigare negli IVR esterni tramite i miei softphone. Per default il file censisce due schede, se ne avete una sola la seconda la potete eliminare.

Configurazione di Asterisk

Asterisk ed i firewall

Asterisk ed i DNS


can i take viagra Vitamins For Erectile Dysfunction viagra how it works?
herbal viagra forums Ziac Erectile Dysfunction “snorting viagra health”
viagra patent levitra Uk Viagra Sales viagra anxiety
Taking viagra woman target google viagra order cheap 470. Male Impotence Drugs cheap gerneric viagra
generic viagra levitra and cialis pills Ed Homeopathic Treatment can i take viagra
viagra how it works? Cialis Levia And Viagra herbal viagra forums
“snorting viagra health” Ed Treatment Stimulation viagra patent levitra
viagra anxiety Viagra Warning Taking viagra woman target google viagra order cheap 470.
cheap gerneric viagra Viagra And Blood Pressure generic viagra levitra and cialis pills
can i take viagra Ed Keating Center Treatment Services viagra how it works?
herbal viagra forums Muse Erectile Dysfunction “snorting viagra health”
viagra patent levitra Natural Viagra viagra anxiety
Taking viagra woman target google viagra order cheap 470. Erectile Dysfunction Treatment Options cheap gerneric viagra
generic viagra levitra and cialis pills New Drugs For Erectile Dysfunction can i take viagra
viagra how it works? Dysfunction Erectile Prilosec herbal viagra forums
“snorting viagra health” Warning Smoking Causes Male Sexual Impotence viagra patent levitra
viagra anxiety Co Ed Treatment Centers Taking viagra woman target google viagra order cheap 470.
cheap gerneric viagra Make Your Own Viagra generic viagra levitra and cialis pills
can i take viagra Viagra And Alcohol viagra how it works?
herbal viagra forums Male Impotence Pills All Brands Ratings “snorting viagra health”
viagra patent levitra Erectile Dysfunction Institute viagra anxiety
Taking viagra woman target google viagra order cheap 470. Buy Viagra Online Uk cheap gerneric viagra
generic viagra levitra and cialis pills Viagra Canadian Pharmacy can i take viagra
viagra how it works? Sickle Cell Disease And Male Impotence herbal viagra forums
“snorting viagra health” Free Erectile Dysfunction Pills viagra patent levitra
viagra anxiety Viagra Song Taking viagra woman target google viagra order cheap 470.
cheap gerneric viagra Latest Treatment For Ed generic viagra levitra and cialis pills
can i take viagra Viagra Erection Duration viagra how it works?
herbal viagra forums Male Impotence Treatment “snorting viagra health”
viagra patent levitra Pravachol And Erectile Dysfunction viagra anxiety
Taking viagra woman target google viagra order cheap 470. Male Impotence Pill cheap gerneric viagra
generic viagra levitra and cialis pills Tadalafil Male Impotence Drugs can i take viagra
viagra how it works? Cause Of Male Impotence herbal viagra forums
“snorting viagra health” Otc Ed Treatment viagra patent levitra
viagra anxiety Viagra For Woman Taking viagra woman target google viagra order cheap 470.
cheap gerneric viagra What Does Viagra Do generic viagra levitra and cialis pills
can i take viagra Recreational Viagra viagra how it works?
herbal viagra forums Guaranteed Cheapest Viagra “snorting viagra health”
viagra patent levitra Viagra And Hearing Loss viagra anxiety
Taking viagra woman target google viagra order cheap 470. Symptoms Of Erectile Dysfunction cheap gerneric viagra
generic viagra levitra and cialis pills Buy Viagra Meds Online can i take viagra
viagra how it works? Ed Treatment Facilities For Pregnant herbal viagra forums
“snorting viagra health” Psychogenic Ed Holistic Treatment viagra patent levitra
viagra anxiety Best Pills For Erectile Dysfunction Taking viagra woman target google viagra order cheap 470.
cheap gerneric viagra Ed Treatment Analysis generic viagra levitra and cialis pills
can i take viagra Buy Viagra Per Pill viagra how it works?
herbal viagra forums Joe Barton Erectile Dysfunction Report “snorting viagra health”
viagra patent levitra Male Sexual Aides For Impotence viagra anxiety
Taking viagra woman target google viagra order cheap 470. Viagra Order Uk cheap gerneric viagra
generic viagra levitra and cialis pills Ed Video Treatments can i take viagra
viagra how it works? Erectile Dysfunction Treatment Hgh Sex herbal viagra forums

Mirroring software facile con GMirror

2 gennaio 2007

Tutto è iniziato una ventina di giorni fa quando ho acquistato una nuova piastra madre e una coppia di dischi SATA da 300GB. Con dischi così grandi se si verifica una rottura la quantità di dati che si rischia di perdere è enorme, e anche farne il backup non è proprio una passeggiata. Il RAID-1 (comunemente detto Mirroring) consente di avere due dischi automaticamente sincronizzati tra loro, tra l’altro senza un’eccessiva penalizzazione delle prestazioni, anzi in linea teorica è anche possibile incrementare le prestazioni dell’I/O da disco perché sebbene le operazioni di scrittura siano più lente (ogni dato deve essere scritto due volte), quelle di lettura possono essere effettuate avvalendosi delle due testine indipendenti dei due dischi e quindi, se l’implementazione è fatta nella maniera corretta, visto che solitamente il numero delle operazioni di scrittura è inferiore a quello delle operazioni di lettura, si dovrebbe ottenere un miglioramente di performance, soprattutto dove si utilizzino più applicazioni in multitasking (la norma per un server).

Tornando alla pratica, la nuova piastra e i nuovi dischi li utilizzerò per sostituire il mio vecchio server di rete (un glorioso IBM Netfinity 5100), e inizialmente avevo intenzione di sfruttare uno dei due dischi come area dati dove depositare un backup snapshot del primo disco (una soluzione rapida ma efficace della quale ho già parlato qui), quando mi sono imbattutto in gmirror.
gmirror si avvale del framework geom introdotto in FreeBSD 5, che grazie alla sua semplicità e flessibilità offre una serie di vantaggi rispetto ad altre e più conosciute soluzioni sia software (come ad esempio Vinum), sia hardware.
In particolare rispetto alle soluzioni software offre una incredibile facilità di installazione e di manutenzione, come vedremo, mentre rispetto alle soluzioni hardware offre la possibilità di mettere in mirroring solo una porzione (una slice) dei dischi, cosa che le soluzioni hardware non sono in grado di fare. In ogni caso gmirror, come il nome suggerisce, gestisce solo mirroring, ossia RAID 1. Se il vostro obiettivo è quello di realizzare un diverso tipo di RAID (ad esempio il RAID 5 con 3 o più dischi) allora gmirror non è la soluzione. Provate ad informarvi su gvinum o magari sul costo di un controller RAID.

Ma bando alle ciance, vediamo il primo punto forte di gmirror: l’installazione. In questo post esaminerò solo la soluzione più semplice nella quale si hanno due dischi identici, ad esempio due dischi serial ATA da 300GB ;-), nello specifico /dev/ad4 e /dev/ad5.
Iniziamo installando normalmente il sistema operativo su /dev/ad4 usando sysinstall dal disco di installazioni di FreeBSD (l’ultima release al momento in cui scrivo è la 6.1) .
Create pure le slice e le partizioni, inclusa la swap, come volete su /dev/ad4. Una volta installato il sistema operativo e controllato che funzioni tutto, occorre ripartire col CD di installazione di FreeBSD e andare in modailtà Fixit, avviando il live filesystem.
Al prompt digitate i seguenti comandi per attivare il sistema e caricare gmirror:

chroot /dist
mount_devfs devfs /dev
gmirror load

A questo punto creiamo un volume virtuale chiamato gm0 partendo dal disco ad4:

gmirror label -v -b round-robin gm0 /dev/ad4

L’opzione “round-robin” segnala a gmirror che si vuole che utilizzi un algoritmo che distribuisce le operazioni di lettura tra i due dischi per migliorare le prestazioni. Il round-robin è il più semplice tra gli algoritmi che gmirror mette a disposizione ed in pratica dispone che i due dischi siano utilizzati a turno per ogni successiva operazione di lettura.

SMTP autenticato con Postfix (su FreeBSD)

26 ottobre 2006

Supponiamo di avere il nostro bravo server di posta in casa basato su Postfix e ovviamente sulla fedele box FreeBSD. Naturalmente abbiamo fatto in modo che il relay sia consentito solo agli utenti della rete interna, mentre tutte le email che arrivano dall’esterno possono essere indirizzati solo ai domini locali, in modo che gli spammer non possano usare il nostro server per mandare tonnellate di “spazzatura” a destra e a sinistra. Perfetto, direte voi! Certo, fino a quando non vi capiterà di avere degli utenti mobili, che se ne vanno in giro per il mondo col loro portatile e ovviamente non ne vogliono sapere di cambiare l’SMTP di uscita sul loro client di posta in funzione dell’internet provider che stanno utilizzando in quel momento.
Qual è la soluzione? L’SMTP autenticato. Ossia dobbiamo fare in modo che Postfix receva la posta per i domini locali da chiunque ma consenta il relay, oltre che dalla rete locale, anche ad eventuali utenti esterni che sappiano fornire un nome e una password valida.

Per l’esempio che segue utilizzeremo gli account utente della locali per l’autenticazione, ma è ovviamente possibile utilizzare altri tipi di database utenti (LDAP, Kerberos, ecc.).

Feed RSS 2.0 in PHP

25 luglio 2006

Per un nuovo sito di MyVideoDaily (pubblicità progresso ;-) ) che sto realizzando, avevo bisogno di generare feed RSS. Ho cercato su internet qualche modulo già fatto che fosse semplice da utilizzare ma non ho trovato niente che facesse al caso, per cui ho deciso di realizzare una classe PHP per la generazione di feed RSS 2.0.

Dato che per svilupparla ho impiegato solo tempo riciclato (ossia il fine settimana!), ho deciso che fosse opportuno pubblicare quanto prodotto con licenza LGPL, quindi disponibile a tutti coloro che ne abbiano bisogno.

Trovate il sorgente della classe e un po’ di documentazione qui sul mio sito, ma in sola lingua inglese, pertanto mi sembra opportuno scrivere almeno un paio di dritte qui in italiano su come funziona la classe.

Generare un feed RSS con RSS2Writer è semplicissimo. In primo luogo bisogna includere il file RSS2Writer.class.php per poter utlizzare le due classi in esso definite. Poi è necessario instanziare la classe RSS2Writer che rappresenta il feed, impostandone i parametri obbligatori, nome del feed, URL di riferimento e descrizione del feed.
Si possono poi impostare i parametri aggiuntivi usando i metodi set().
Vediamo un esempio:

include_once("rss2writer.class.php");
$rssw=new RSS2Writer("My Rss2 Feed",
"http://www.mauriziogiunti.it","This is a test feed");
$rssw->setLanguage('en-us');
$rssw->setPubDate(date('Y-m-d H:m:s'));

Una volta preparato il feed, si possono aggiungere i vari item che lo compongono, ossia i singoli articoli che il feed deve trasportare, attraverso il metodo addItem(), il quale deve ricevere come parametro un oggetto di tipo RSS2Item.
Sarà quindi necessario creare uno o più di questi oggetti per popolare il feed, anche in questo caso impostando nel costruttore i parametri obbligatori e attraverso i metodi set*() quelli opzionali:

// Create a new feed item
$item=new RSS2Item('This is a test item','http://www.mauriziogiunti.it/rss2writer.html',
'RSS2Writer PHP class');
$item->setPubDate("2006-07-24");
// Add the item to the feed
$rssw->addItem($item);

Ovviamente ogni feed può avere un numero qualsiasi di item. Basta crearli e aggiungerli come abbiamo visto.

Una volta popolato adeguatamente il feed non resta altro da fare che inviarlo al client che lo ha richiesto. Per farlo è necessario innanzitutto dichiarare che lo stream http che stiamo producendo non trasporta una pagine html ma una pagina xml, impostanto il content type opportuno nello header della risposta, dopodiché potrà essere usato il metodo doPrint() della classe RSS2Writer, per inviare il feed RSS al client:

header('Content-type: text/xml');
$rssw->doPrint();

Ovviamente dovete ricordare di non inviare nient’altro nella pagina, nemmeno degli spazi bianchi, prima dell’impostazione del content type altimenti il PHP vi bloccherà in errore.

Questa è solo un’infarinatura su come si utilizza la classe, ma credo che sia evidente quanto sia semplice da usare. Per maggiori dettagli vi rimando alla pagina ufficiale di RSS2Writer.

A presto!

Meg

can i take viagra Diovan Improvement In Erectile Dysfunction viagra how it works?
herbal viagra forums Viagra Sales “snorting viagra health”
viagra patent levitra Natural Home Remedy For Erectile Dysfunction viagra anxiety
Taking viagra woman target google viagra order cheap 470. Tricor Erectile Dysfunction cheap gerneric viagra
generic viagra levitra and cialis pills Buy Generic Viagra can i take viagra
viagra how it works? Avandamet Erectile Dysfunction herbal viagra forums
“snorting viagra health” Acupuncture Treatment For Ed viagra patent levitra
viagra anxiety Male Impotence Causes Taking viagra woman target google viagra order cheap 470.
cheap gerneric viagra Buy Viagra generic viagra levitra and cialis pills
can i take viagra Topical Ed Treatment viagra how it works?
herbal viagra forums Viagra Discount “snorting viagra health”
viagra patent levitra New Ed Treatment viagra anxiety
Taking viagra woman target google viagra order cheap 470. Viagra Blood Pressure cheap gerneric viagra
generic viagra levitra and cialis pills Plavix And Erectile Dysfunction can i take viagra
viagra how it works? Cialis Viagra herbal viagra forums
“snorting viagra health” Exercises For Male Impotence viagra patent levitra
viagra anxiety Erectile Dysfunction And Heart Disease Taking viagra woman target google viagra order cheap 470.
cheap gerneric viagra Vacumn Pumps For Erectile Dysfunction generic viagra levitra and cialis pills
can i take viagra Viagra Prices viagra how it works?
herbal viagra forums Erectile Dysfunction Review “snorting viagra health”
viagra patent levitra Young Male Impotence viagra anxiety
Taking viagra woman target google viagra order cheap 470. Treatment For Ed Muse cheap gerneric viagra
generic viagra levitra and cialis pills Order 50mg Viagra can i take viagra
viagra how it works? Male Impotence Mental Psychological herbal viagra forums
“snorting viagra health” Impotence In Male Athletes viagra patent levitra
viagra anxiety Erectile Dysfunction Cure Taking viagra woman target google viagra order cheap 470.
cheap gerneric viagra Herbal Remedies For Erectile Dysfunction generic viagra levitra and cialis pills
can i take viagra Viagra Cheap viagra how it works?
herbal viagra forums Viagra Professional “snorting viagra health”
viagra patent levitra Dealing With Male Impotence viagra anxiety
Taking viagra woman target google viagra order cheap 470. Substanse Treatment Co-ed San Diego cheap gerneric viagra
generic viagra levitra and cialis pills Reasons For Male Impotence can i take viagra
viagra how it works? Male Erectile Dysfunction herbal viagra forums
“snorting viagra health” Male Impotence Ads viagra patent levitra
viagra anxiety Erectile Dysfunction Prostate Taking viagra woman target google viagra order cheap 470.
cheap gerneric viagra Buy Viagra Online At generic viagra levitra and cialis pills
can i take viagra Aspirin And Viagra viagra how it works?
herbal viagra forums Correction For Male Impotence “snorting viagra health”
viagra patent levitra Ed Treatment viagra anxiety
Taking viagra woman target google viagra order cheap 470. Marijuana And Viagra cheap gerneric viagra
generic viagra levitra and cialis pills Women Does Viagra Work can i take viagra
viagra how it works? Erectile Dysfunction In Nigeria herbal viagra forums
“snorting viagra health” Male Impotence Medicare viagra patent levitra
viagra anxiety Herbs And Viagra Interaction Taking viagra woman target google viagra order cheap 470.
cheap gerneric viagra Chinese Viagra generic viagra levitra and cialis pills
can i take viagra Levitra Dysfunction Erectile viagra how it works?
herbal viagra forums Discount Viagra Perscription Drug “snorting viagra health”
viagra patent levitra Female Viagra viagra anxiety
Taking viagra woman target google viagra order cheap 470. Dysfunction Erectile Zocor cheap gerneric viagra
generic viagra levitra and cialis pills Andropause Or Male Menopause Impotence can i take viagra
viagra how it works? Zetia And Erectile Dysfunction herbal viagra forums

Sono diventato MultiHomed!

29 giugno 2006

Questo Blog lascia molto a desiderare…

non c’è più nessuno che posti un articolo…
:)
…così mi sono fatto forza ed approfittando che oggi a Roma è la festa del santo patrono ed io da solo a casa mi annoio a morte, mi sono messo a scrivere questo bellissimo articoletto.

Spero sia utile ai più… ma soprattutto spero che qualcuno mi suggerisca una soluzione migliore per risolvere il problema che andrò a descrivere

Cos’è un sistema multihomed?

tratto da “www.webopedia.com/TERM/M/multihomed.html

Multihomed
(adj.) Typically used to describe a host connected to two or more networks or having two or more network addresses. For example, a network server may be connected to a serial line and a LAN or to multiple LANs.

…e non come ha detto il mio “fratello” Meg che ho una casa a Firenze ed una a Roma!

PHP come script di sistema (di nuovo!)

10 novembre 2005

In un breve post di qualche mese fa vi ho detto come sia possibile usare il PHP anche come linguaggio di script di sistema, ossia per fare script eseguibili dalla shell.
Vediamo oggi qualche trucchetto per utilizzare efficacemente questi script.

In primo luogo sarebbe comodo poter invocare semplicemente lo script senza dover utilizzare il comando php -q. Grazie alla potenza della shell di Unix questa cosa è semplicissima: in primo luogo dobbiamo usare il comando which per localizzare il percorso esatto dell’eseguibile del php sulla nostra macchina, poi basterà far iniziare lo script da eseguire con i caratteri #! seguiti dal nome completo dell’esegibile php con argomento -q.
Ad esempio sul mio fido serverino FreeBSD trovo:

$ which php
/usr/local/bin/php

quindi i miei script in php dovranno iniziare con questa riga:

#!/usr/local/bin/php -q

Vediamo il semplice script di esempio prova.php:

#!/usr/local/bin/php -q
< ?php
for($i=0;$i<10;$i++) {
print "Ciao\n";
}
?>

Non devo inoltre scordare di impostare sul file l’attributo X per autorizzarne l’esecuzione.

$ chmod +x prova.php
$ ./prova.php
Ciao
Ciao
Ciao
Ciao
Ciao
Ciao
Ciao
Ciao
Ciao
Ciao

Form con codice di verifica in PHP

20 ottobre 2005

A chi in questi tempi bui non è capitato di dover inserire in una form un codice di verifica, ossia di dover copiare da un’immagine semioffuscata una sequenza di numeri e lettere casuali?
Vi siete chiesti a cosa servono? Semplice: per impedire che quelle form vengano utilizzate da un client software. Ad esempio gli spammer avevano iniziato ad aprirsi account a go-go su Yahoo mail, o altri siti di email gratuite, per poter sparare indisturbati i loro quintali di avvisi commerciali. Aprire un account era piuttosto semplice, bastava riempire qualche form, lavoro che si può automatizzare agevolmente con uno script in Perl, o simili.
Grazie all’introduzione di un codice di verifica questo non è più possibile, infatti il codice nell’immagine non è leggibile in maniera automatica.
Certo sarebbe in teoria possibile utilizzare un software OCR, ma come vedremo anche l’uso di questi strumenti si può, se non impedire, almeno rendere più complesso.

In questo post realizzeremo una form con un semplice codice di controllo generato casualmente.

Prerequisito perché questa strategia di verifica sia efficace, è che il codice di controllo non compaia mai all’interno della pagina HTML dove si trova la form. Questo deve essere mostrato solo attraverso un’immagine e quindi immagazzinato nella sessione.
Per questo realizzeremo uno script PHP, chiamato verimage.php, che provvederà a creare un nuovo codice di verifica casuale, memorizzarlo nella sessione e quindi creare un’immagine che lo rappresenta. L’immagine non verrà memorizzata da qualche parte, al contrario verrà immediatamente inviata al browser dell’utente, dichiarando nell’header HTTP il tipo mime di un’immagine, invece che il consueto text/html.
Questa tecnica si può anche utilizzare in altri contesti, per creare dinamicamente immagini o altri tipi di file.

Lanciare un processo asincrono da una pagina php

6 settembre 2005

Ciao a tutti,

non so se vi è mai capitato, ma io ho avuto bisogno di eseguire un processo asincrono da una pagina php e che fosse anche esso uno script php.

La cosa sembra facile … exec(command) … ma non è così …
prima di tutto abbiamo limitazioni dovute al sistema operativo (sotto Windows è problematico dare accessi a processi shell da parte del web server per motivi di sicurezza), ma anche sottop unix dove è semplice abbiamo delle limitazioni.

Affinché un processo sia eseguibile con la exec da parte di una pagina php è necessario che non solo siano ridiretti a null, ma che siano anche chiusi sia gli stream di standard output che quelli di standard error.

Supponiamo di avere un processo asincrono che vogliamo eseguire che si chiama /miadirectory/mioprocesso.php e che necessiti di 3 parametri (param1, param2, param3), quello che dobbiamo fare nella pagina chiamante è preparare l’esecuzione:

$exec_cmd=”/usr/local/bin/php -q /miadirectory/mioprocesso.php param1 param2 param3 2>/dev/null >&- < &- >/dev/null &”;

e quindi lanciare l’esecuzione asincrona con:

exec($exec_cmd);

E’ solo un piccolo trucco, ma spero possa essere utile a qualcuno … ricordatevi che funziona solo sotto Unix

Lunghi giorni e piacevoli notti a tutti