Archivio

Archive for the ‘Voip:Freeswitch’ Category

Dove eravamo rimasti…

Nell’anno appena terminato, non ho scritto neanche un post, se non aggiornare qualcosa qua e là. Questo perché sia a livello lavorativo che in privato ho avuto molte cose da fare. La mente però non si ferma e a breve rivelerò nuove iniziative che orbitano intorno al mondo del VoIP.

La soddisfazione più grande è stata quel centinaio di lettori che, senza uno straccio di pubblicità, senza nessun tam tam di rete e senza sapere bene cosa stavano facendo ( 😉 ) si sono avventurati nell’acquisto del mio libro su Freeswitch: GRAZIE, GRAZIE, GRAZIE. Potrà sembrare un piccolo successo ma per me siamo andati oltre la più rosea delle previsioni.

Altro argomento caldo in cui mi sono avventurato in questo lungo 2016 sono le interconnessioni VoIP tra operatori. Eh sì, perché anche le grandi compagnie telefoniche sono capitolate sotto gli sferzanti attacchi della voce su internet. E quindi ho scoperto un mondo a chiaro-scuri molto intrigante.

Non sono mancate le mie solite sperimentazioni, avvicinando colossi come Kamailio e strani oggetti detti SBC, di cui dovremo parlare sicuramente.

Interessanti anche le esperienze di formazione che ho avuto con alcune aziende…insomma state in campana…ci saranno novità!!!

Annunci

Libro su FreeSWITCH in italiano

17/02/2015 8 commenti

Più volte, in questo blog, ho esaltato le potenzialità di FreeSWITCH. Eppure questo magnifico software stenta a guadagnare terreno sul suolo italico. Allora ho preso il coraggio a due mani e mi sono messo a scrivere. Ne sono uscite 150 pagine circa dense di idee, nozioni e spiegazioni. L’ho detto ad Anthony e al suo gruppo, come a chiedere la loro benedizione. Non solo mi hanno incoraggiato, ma mi hanno messo in contatto con un revisore eccezionale. Si tratta di Giovanni Maruzzelli, italiano come noi e autore di diversi moduli per FS. Ne è nato un lavoro modesto nei modi ma denso nei contenuti, capace di introdurre anche il voippista più acerbo alle magie di questo softswitch d’avanguardia.

CopertinaLight

 Il libro è questo. Lo trovate su Amazon, Feltrinelli, IBS, Hoepli e anche in molte librerie fuori da internet. Se lo leggete sono contento, soprattutto perché avrò così contribuito al progetto FreeSWITCH! Se lo fate, mi piacerebbe avere i vostri commenti. Saluti!!!

Categorie:Voip:Freeswitch

WebRTC: anche il telefono se ne va nella nuovola

L’ultimo baluardo dell’ufficio vecchia maniera era rimasto il telefono. Google e soci avevano messo in cloud tutto il necessario ad una normale postazione lavorativa. La posta su GMail, i documenti su Drive, foglio di calcolo ed editor inclusi, gli appuntamenti sul Calendar, le presentazioni video su YouTube.

Eppure il telefono eravamo comunque costretti a portarcelo dietro. Dal classico cellulare fino al softphone sul PC, per i più smaliziati. Insomma o ti portavi dietro il telefono o per lo meno il tuo PC con il tuo software di fiducia e le cuffiette. In passato ci sono stati tentativi per superare questo vincolo. Ricordo GizmoCall, FlashPhone e altri. Tutti ottimi tentativi che risentivano delle specifiche hardware o di rete, in cui la pagina web girava.

Poi i ragazzi della grande G si inventano un progetto spettacolare. Contattano i maggiori produttori di web browsers e li coinvolgono nello standardizzare una nuova tecnologia: il WebRTC, dove la sigla sta per Real-Time Communications. La soluzione all’annoso problema della comunicazione portatile viene trovata nel classico uovo di colombo.

Le solite menti visionarie si sono dette: cosa succede se integriamo nei browsers delle funzionalità per gestire audio (scheda sonora, cuffie,etc) e video (webcam), oltre che ad un protocollo per lo streaming sicuro? Ecco che così il browser diventa lo strumento per comunicare, dopo essere già diventato lo strumento per scrivere programmare e inviare mails. Ci sono delle demo (http://googlechrome.github.io/webrtc/) che mostrano la potenza di questo nuovo strumento, realizzate dai suoi inventori e fan entusiasti.

Un altro gruppo di programmatori, gli amici di FreeSWITCH, di cui tanto ho parlato in queste pagine, hanno subito cavalcato l’onda e creato un modulo per il loro  software VoIP che si interfaccia agevolmente col WebRTC. Sto parlando di mod_verto. Non sono proprio di primo pelo nelle telecomunicazioni ma la semplicità riesce ancora a stupirmi. Con poche righe di codice, riutilizzando dei pezzi di Javascript già presenti in rete da anni, si riesce a creare qualcosa di unico.

La DEMO permette di unirsi alla conference degli sviluppatori in certi giorni della settimana. Generalmente udrete musica. Il bello è che quella demo potete scaricarla e farla diventare il vostro web phone personale! Certo ci vuole un po’ di studio per modificarla a proprio piacimento, utilizzando tutti i metodi del WebRTC. Ma il risultato è più che soddisfacente.

L’ultima barriera è dunque superata. Se siete in vacanza alle Maldive e quel cliente importantissimo ha bisogno di essere chiamato, andate ad un internet point, trovate sul Drive le offerte che gli avevate mandato, accedete al vostro webphone e chiamatelo col numero dell’ufficio. Tranquilli…non vedrà le vostre infradito.

Il primo PBX virtuale basato su Freeswitch in Italia

29/10/2012 3 commenti

Chi segue questi miei deliri online, sa quanto sia innamorato del software voip open source Freeswitch. Su queste pagine ho pubblicato anche alcuni esperimenti che ho realizzato con questo software. Proprio leggendo i miei commenti entusiasti, sono stato contattato da una giovane software house italiana che ha realizzato e commercializzato un PBX virtuale interamente basato su Freeswitch!

I ragazzi del team di TiChiamo.it mi hanno offerto una demo gratuita e spiegato le funzionalità del loro ‘virtualpbx’ e devo dire che, sebbene il numero di servizi offerti non sia ancora paragonabile a quello delle grandi firme americane, stupisce per la semplicità di utilizzo e per la facilità con cui ci si registra al servizio con un IP-Phone di media qualità.

Le features sono quelle classiche: chiamate gratuite tra interni, gruppi di squillo, code, trasferimenti (anche verso interni virtuali corrispondenti a numeri di cellulare), voicemail, follow-me e altri ancora. Altre sono in cantiere, motivate dai clienti, data la giovane età del progetto.

Quello che mi ha colpito è la facilità di implementazione con cui certe funzionalità sono state create. Sicuramente grazie alla loro bravura, ma soprattutto per la potenza di questa piattaforma. I ragazzi mi hanno detto che per ottenere le stesse funzionalità del loro dialplan (un paio di schermate) con script Asterisk hanno dovuto riempire pagine e pagine di extensions.conf con programmazione Gosub/Goto simile ai programmi basic del povero Commodore 64 (che il dio dei computers l’abbia in gloria)!

Insomma: bravi ragazzi! Vi auguro tanta fortuna.

Lato mio gongolo, perché “ve l’avevo detto che FS è il futuro!”. Detentori di PBX virtuali basati su Asterisk, siete avvisati!

FreeTDM: attacchiamo Freeswitch alla vecchia telefonia

12/06/2012 1 commento

Per chi non lo sapesse Sangoma, nota produttrice di schede per connettere i server VoIP alla rete telefonica tradizionale, è uno dei più grossi sponsor di Freeswitch (abbreviato FS), ed è per questo che uno dei suoi tecnici ha sviluppato il modulo TDM di FS, FreeTDM appunto. Di conseguenza le loro schede sono le più indicate, per chi avesse l’esigenza di sviluppare, ad esempio, un centralino connesso ad un flusso primario.

Se però, come me, siete degli ex sviluppatori Asterisk, per lo stesso principio, vi ritroverete per il laboratorio una scheda Digium; siccome non costano un soldo, vi domanderete: “posso usarla con FS?” La risposta è “sì” ma l’operazione non è proprio scontata.

Step 1. La parte più semplice

La parte più semplice è quella che già conoscevamo: installare libpri e dahdi, esattamente come si fa su Asterisk. Alla fine della compilazione si fa partire il servizio (“service dahdi start” in Debian), si fa generare i files di configurazione e si verifica il tutto:

root@pbx:~#dahdi_genconf
root@pbx:~#dahdi_cfg

root@pbx:~#lsdahdi

### Span 1: TE4/0/1 “T4XXP (PCI) Card 0 Span 1” (MASTER) HDB3/CCS/CRC4 ClockSource
1 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
2 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
3 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
4 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
5 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
6 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
7 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
8 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
9 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
10 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
11 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
12 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
13 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
14 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
15 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
16 PRI HDLCFCS (In use) (EC: VPMOCT128 – INACTIVE)
17 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
18 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
19 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
20 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
21 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
22 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
23 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
24 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
25 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
26 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
27 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
28 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
29 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
30 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)
31 PRI Clear (In use) (EC: VPMOCT128 – INACTIVE)

[…]

In verità non è stata così facile come faccio sembrare. Ho avuto la fortuna di subire un bug noto a tutti eccetto che a me, di incompatibilità tra i nuovi drivers e una scheda un po’ vecchiotta che avevo. Una giornata di lavoro per scoprire che avrei dovuto rimandarla indietro quando era l’ora!

Step 2.  La compilazione di ftmod_libpri

Libpri rimane ancora la libreria più affidabile per le Digium. Per integrarla in FS è necessario portarsi nell’apposita directory dei file sorgente /…/freeswitch/libs/freetdm

-) ./configure –with-libpri –prefix=/usr/local/freeswitch

-) make

-) make install

Al termine, per sicurezza, controllate che ftmod_libpri.laftmod_libpri.so siano apparsi sotto /usr/local/freeswitch/mod.

Step 3. Le tre conf di FS

In FS i files da modificare sono tre.

Il primo è conf/zt.conf che ho lasciato come di default:

[defaults]
codec_ms => 20
wink_ms => 150
flash_ms => 750
echo_cancel_level => 64
rxgain => 0.0
txgain => 0.0

Il secondo è conf/freetdm.conf che ho configurato per un solo primario (nonostante la scheda avesso 4 span) :

[general]
cpu_monitor => no
cpu_monitoring_interval => 1000
cpu_set_alarm_threshold => 80
cpu_reset_alarm_threshold => 70
cpu_alarm_action => warn
debugdtmf_directory=/usr/local/freeswitch/log

[span zt myPRI_1]
trunk_type => E1
group => e1group
b-channel => 1-15
d-channel => 16
b-channel => 17-31

Il terzo costituisce il legame tra FS e i driver propri dell’hardware: conf/autoload_configs/freetdm.conf.xml. Di tutti quelli elencati fin’ora è l’unico in formato XML:

<configuration name=”freetdm.conf” description=”FreeTDM Configuration”>

<settings>
<param name=”debug” value=”0″/>
</settings>

<libpri_spans>
<span name=”myPRI_1″>
<param name=”node” value=”cpe”/>
<param name=”switch” value=”euroisdn”/>
<param name=”opts” value=”omit_redirecting_number”/>
<param name=”dp” value=”unknown”/>
<param name=”debug” value=”none”/>
<param name=”dialplan” value=”XML”/>
<param name=”context” value=”public”/>
</span>

</libpri_spans>
</configuration>

Notare che il campo “span name” è pari a myPRI_1 : questo valore deve coincidere con il nome della span zt nel file freetdm.conf!

Step.4 Telefonare

A questo punto ho registrato un softphone a FS come interno 1000 nel dominio di default. Solo per fare le prove ho aggiunto sotto conf/dialplan/public/ il file 01_inbound_TDM.xml  così fatto:

<include>
<extension name=”public_tdm”>
<condition field=”destination_number” expression=”^012345678$”>
<action application=”transfer” data=”1000 XML default”/>
</condition>
</extension>
</include>

Dove 012345678 è il numero attestato sul flusso primario collegato al server tramite scheda Digium.

Poi su conf/dialplan/default.xml ho aggiunto questa extension:

<extension name=”outgoing-pri”>
<condition field=”destination_number” expression=”^61000$”>
<action application=”bridge” data=”freetdm/1/a/300112233″/>
</condition>
</extension>

Dove 300112233 è il numero del mio cellulare (non è vero , ovviamente!).

A questo punto digitando 61000 dal softphone ho parlato con il cellulare, mentre chiamando 012345678 mi è squillato il softphone e ho potuto ugualmente parlare.

Conclusioni

Ripeto la frase con cui ho iniziato: se dovete comprare una card nuova, scegliete Sangoma! Per motivi di spazio non vi posso documentare le mille difficoltà (stupidaggini) in cui sono incappato, anche grazie alla poca documentazione per le Digium. Commercialmente è giusto così, tecnologicamente parlando un po’ meno. Alla fine però il buon Freeswitch esce vincitore anche da questa vicenda, facendosi trovare già maturo alle interconnessioni TDM!

Categorie:Voip:Freeswitch

Freeswitch parla italiano

12/04/2012 7 commenti

In attesa di un set di files audio in italiano per Freeswitch, mi sono ingegnato a produrne un sottoinsieme, con l’obiettivo di fornire ai miei clienti una voicemail accettabile.

Per la sola segreteria telefonica è necessario avere anche i numeri, le date, le lettere e una serie di caratteri ascii registrati (es. cancelletto, asterisco). La materia prima, le registrazioni, le ho preso dal noto pacchetto voci registrato per Asterisk da Marco Menardi e sua moglie Paola. Naturalmente non tutte le voci erano adattabili e ho dovuto lavorare con il fido software Audacity al cut&paste. Il risultato, a mio avviso è decente e potete scaricarlo qui:

SET FILES AUDIO FREESWITCH ITALIANO

Come si installa il tutto?

  1. Copiare la cartella sounds/it sotto /usr/local/freeswitch/sounds
  2. Copiare la cartella lang/it sotto /usr/local/freeswitch/conf/lang
  3. Compilare e caricare su Freeswitch il modulo mod_say_it

Già così, configurando opportunamente la voicemail e le extensions nel profilo internal, siete in grado di utilizzare la voicemail. I messaggi vecchi però il sistema li chiamerà “salvati” perché nel sorgente di mod_voicemail.c viene richiamato l’inglese “saved”. Ho modificato il sorgente per dire “vecchi” ma dopo va ricompilato e quindi consiglio la modifica solo agli utenti evoluti. Il sorgente modificato per la release “FreeSWITCH Version 1.0.head del 27/09/2011” lo trovate nel pacchetto.

Provate il tutto e ditemi cosa ne pensate. Credo sia meglio di niente, in attesa di un set di files migliori. Ho contattato Menardi e gli ho inviato le frasi di tutto il set per Freeswitch in italiano. Non mi ha promesso niente ma ha detto che il progetto lo intriga…chi vivrà vedrà!

Attendo commenti!

Categorie:Voip:Freeswitch

Freeswitch: l’ammazza Asterisk

15/03/2012 6 commenti

Come si vede da altri articoli del mio blog, di Asterisk ne ho dovuto masticare parecchio. Il prodotto di Mark Spencer ha aperto nuovi orizzonti nella telefonia, sia voip che tradizionale. Innumerevoli sono le aziende che hanno usato e usano l’Asterisco per erogare servizi voce quali IVR, Voicemail, Audio Conference, VirtualPBX etc.

Le varie releases autoinstallanti come Trixbox, Elastix e affini hanno conquistato ormai una fetta consistente dei centralini installati nelle piccole e medie aziende, anche qui in Italia.

Eppure chi ci ha lavorato per molto tempo, sa qual’è la vera pecca del centralino software della Digium: il codice. Sì, già dalla 1.6 i programmatori di Spencer si sono prodigati nella riscrittura di quasi tutto il codice ma la filosofia centrale è rimasta quella, permettendo ai creatori di patches e moduli di risputtanare in poco tempo tutto il lavoro.

Ed ecco che uno degli sviluppatori di Asterisk prende una decisione e scrive da zero il codice di un nuovo softswitch, avendo a mente tutti gli errori metodologici fatti con Asterisk. Ne esce qualcosa di eccezionalmente versatile e in grado di soddisfare gli sviluppatori di soluzioni voce di tutto il mondo: Freeswitch !

Cosa può fare questo software straordinario? Tutto, a detta dei suoi creatori. Se è vero non lo so ma per quello che ho potuto vedere, sicuramente copre le funzionalità di Asterisk e oltre. La lista dichiarata delle funzionalità la trovate qui ,  ma la capacità di interfacciarsi con i principali linguaggi di programmazione, unita alle API che mette a disposizione, rendono le potenzialità di Freeswitch praticamente illimitate.

Unico neo? La configurazione. Dimenticate le liste numerate di extensions, qui si parla in XML. Per chi viene da Asterisk l’impatto è molto duro perché cambia la filosofia ma quando si padroneggia lo strumento, si scopre che quello che sembrava un neo, in verità è l’ennesima freccia dell’arco FS (come lo chiamano gli amici).

La cosa che mi ha più colpito è la vitalità e prontezza di risposta dei suoi creatori sia su mailing list che su IRC. Vi assicuro che all’inizio farete domande stupide e nessuno vi mancherà di rispetto, rispondendo anche a cose che poi scoprirete essere ovvie.

In un prossimo post parlerò delle interfacce grafiche stile FreePBX per Freeswitch, perché la programmazione nuda e cruda di questo software è da sconsigliare a chi non ha basi di programmazione. Per gli addetti ai lavori invece è un MUST! Provare per credere.

Categorie:Voip:Freeswitch