Forum: Italian Ruby user group Telefonia

5ffafe70176a99f175d16192fd5be69e?d=identicon&s=25 Luca P. (luca_p)
on 2013-11-15 10:46
(Received via mailing list)
Ciao,
sposto la discussione sulle applicazioni VoIP in Ruby da questa parte se
no ci sparano.

Per Sickpig: ma usate per caso Adhearsion? Come controllate Asterisk?
Per inciso, se avete problemi con i segfault, magari riusciamo a darvi
una mano, lavoriamo abitualmente con Asterisk.

Per gli altri: qualcuno sviluppa, o ha sviluppato, applicazioni VoIP?
Con che stack e tecnologie?

Per i furbetti della JVM: lo so che su Java 7 -J-server non serve ma io
ce lo lascio lo stesso :D

--
Luca Pradovera
luca.pradovera@gmail.com
491498f4267723724c20a244fb1060c5?d=identicon&s=25 Maurizio (Guest)
on 2013-11-15 12:17
(Received via mailing list)
Il 15/11/2013 10:46, Luca Pradovera ha scritto:
> Ciao,
> sposto la discussione sulle applicazioni VoIP in Ruby da questa parte se no ci
sparano.
>
> Per Sickpig: ma usate per caso Adhearsion? Come controllate Asterisk?
> Per inciso, se avete problemi con i segfault, magari riusciamo a darvi una mano,
lavoriamo abitualmente con Asterisk.
>
> Per gli altri: qualcuno sviluppa, o ha sviluppato, applicazioni VoIP?
> Con che stack e tecnologie?
>

Io sono molto interessato a questa discussione perch stavo giustappunto
pensando allo sviluppo di uno strumento interno per la gestione del
numero per l'assistenza fondamentalmente. Premetto che sono *MOLTO*
ignorante su Adhearsion; lo conosco, avevo spulciato la doc qualche mese
fa ma non ho mai approfondito, e nemmeno scritto una riga di codice che
si appoggiasse ad esso.

Come si comporta con la lingua italiana? Parlo di text-to-speech
piuttosto che di speech-to-text. La scelta di JRuby per l'utilizzo di
Adhearsion  dovuta al fatto che ci sono molti processi che sono CPU
intensive e bloccanti oppure per gestire molti eventi
contemporaneamente, per esempio tante chiamate contemporanee? Come si
comporta con la MRI e Rubinius?

JRuby mi affascina (concettualmente, come qualsiasi non-MRI) e questo
potrebbe darmi la spinta necessaria per provarlo.
71534f04397ad784e01fa97533b9360a?d=identicon&s=25 sickpig@gmail.com (Guest)
on 2013-11-15 12:24
(Received via mailing list)
Ciao


2013/11/15 Luca Pradovera <luca.pradovera@gmail.com>

> Ciao,
> sposto la discussione sulle applicazioni VoIP in Ruby da questa parte se
> no ci sparano.
>

ottima idea :P



>
> Per Sickpig: ma usate per caso Adhearsion? Come controllate Asterisk?
>

non usiamo adhersion.

ci siamo scritti una classe per parlare con asterisk via AMI (
https://wiki.asterisk.org/wiki/pages/viewpage.acti...).

Quando dobbiamo fare una chiamata il server rails si collega via AMI al
server asterisk, eseguiamo un Originate
che istanzia una chiamata al numero e poi fa il bridge sul peer sip
(browser) che ha generato la richiesta.



> Per inciso, se avete problemi con i segfault, magari riusciamo a darvi una
> mano, lavoriamo abitualmente con Asterisk.
>

magari! sarebbe bello.

praticamente il tutto si verifica sotto carico, la maggior parte delle
volte il seg fault al modulo rtp di asterisk.

purtroppo stiamo usando tutte parti di codice di asterisk relativamente
nuove, l'autentificazione e il signaling del sip
viene veicolato dai browser via websocket, asterisk nelle nuove versioni
ha
un suo server ws embedded, lato
client il signaling SIP  gestito via JsSIP (jssip.net, progetto davvero
buono) mentre tutta la parte media sfrutta
le funzionalit  WebRTC (attualmente usiamo solo chrome).

A questo aggiungi che facciamo girare una versione patchata di asterisk
per
il support del trascoding di opus
(https://github.com/meetecho/asterisk-opus, http://www.opus-codec.org/)
per
questioni di consumo di banda.
(usare ulaw/alaw sarebbe troppo dispendioso e gli unici due codec
abilitati
in chrome ad ora sono opus,ulaw).

 Se hai qualche dritta sono tutto orecchie :P
5ffafe70176a99f175d16192fd5be69e?d=identicon&s=25 Luca P. (luca_p)
on 2013-11-15 13:18
(Received via mailing list)
Iniziare con Adhearsion  davvero facile, ma a questo punto potremmo
anche organizzare un Hangout per chi fosse interessato.

Per quanto riguarda il TTS, Adhearsion  quello che si chiama 3PCC, Third
Party Call Control, ovvero non tocca il media stream, ma gestisce solo
le logiche di chiamata

Tutto laudio se lo smazza lAsterisk o FreeSWITCH di turno.
Per il text-to-speech hai svariate opzioni, alcune sono free ma
scarsine, tipo FLite, altre leggermente migliori e costano poco, come
Cepstral, per poi arrivare alle soluzioni veramente costose.
Il vantaggio  che Adhearsion supporta dal punto di vista dei comandi
moltissimi engine in maniera trasparente, tant che noi sviluppiamo con
FLite in locale, la qualit  scarsa ma  free e si installa in 10 minuti,
poi di solito senza modifiche si passa alla roba carrier-grade in
staging e produzione.

Adhearsion  basato su Celluloid, quindi sullactor model, quindi 1 thread
per operazione/actor, quindi JRuby :P
Poi per ragioni varie, non ultimo la semplicit, molti progetti meno
carichi girano su CRuby senza tanti problemi.
Consideriamo lo switch quando parliamo di sistemi che sono a 250+
chiamate attive contemporanee, con 20+ chiamate nuove al secondo, che se
fai le moltiplicazioni non sono noccioline :)

--
Luca Pradovera
luca.pradovera@gmail.com
5ffafe70176a99f175d16192fd5be69e?d=identicon&s=25 Luca P. (luca_p)
on 2013-11-15 13:22
(Received via mailing list)
Bene!

On Nov 15, 2013, at 12:24 PM, sickpig@gmail.com wrote:

> ottima idea :P
>
>
>
>>
>> Per Sickpig: ma usate per caso Adhearsion? Come controllate Asterisk?
>>
>
> non usiamo adhersion.

Io vi consiglio di non ri-inventare la ruota :)

>
> nuove, l'autentificazione e il signaling del sip
> (usare ulaw/alaw sarebbe troppo dispendioso e gli unici due codec abilitati
> in chrome ad ora sono opus,ulaw).

My money is on this.

Secondo me vi conviene esplorare una soluzione con Kamailio come SBC con
http://www.kamailio.org/w/2013/08/new-module-rtppr...
oppure passare a FreeSWITCH che quei problemi non li ha.
Asterisk 12 sistema un sacco di problemi di questo tipo.
La 11 usa ancora la vecchia architettura e i plugin, soprattutto quelli
per media/RTP, sono un problema a livello di design.
Issue su Github e sentite cosa vi dicono, per cominciare!
71534f04397ad784e01fa97533b9360a?d=identicon&s=25 sickpig@gmail.com (Guest)
on 2013-11-15 13:39
(Received via mailing list)
>> A questo aggiungi che facciamo girare una versione patchata di asterisk per
>> il support del trascoding di opus
>> (https://github.com/meetecho/asterisk-opus, http://www.opus-codec.org/) per
>> questioni di consumo di banda.
>> (usare ulaw/alaw sarebbe troppo dispendioso e gli unici due codec abilitati
>> in chrome ad ora sono opus,ulaw).
>
> My money is on this.

pure io avevo puntato su questo, ma ho perso :P

la cosa crash anche con asterisk vanilla usando ulaw, purtroppo

> Secondo me vi conviene esplorare una soluzione con Kamailio come SBC con
http://www.kamailio.org/w/2013/08/new-module-rtppr...
oppure passare a FreeSWITCH che quei problemi non li ha.
> Asterisk 12 sistema un sacco di problemi di questo tipo.

stiamo valutanto di passare a freeswitch proprio per questo motivo.
adesso che ce lo fai presente di sicuro valuteremo anche kamalio.
il problema  che siamo abbastanza impantanati con un bel po' sdi
features di asterisk e per valutare se l'alternativa a tutto quello
che
ci serve  time consuming.

> La 11 usa ancora la vecchia architettura e i plugin, soprattutto quelli per
media/RTP, sono un problema a livello di design.

nella 12 tra l'altro  stata incorporata una parte della patch per
opus, purtroppo strippata del transcoding. da quello si  capito
quelli della digium hanno una paura folle
di essere schiacciati come "bugs" per via di possbili brevetti usati
nell'implementqazioe di opus

> Issue su Github e sentite cosa vi dicono, per cominciare!

questa  un idea, la pi banale ma sonostato cos tante volte
"snobbato" (usiamo asterisk dalla versione 1.2) che ormai non ci penso
nemmeno pi :P
5ffafe70176a99f175d16192fd5be69e?d=identicon&s=25 Luca P. (luca_p)
on 2013-11-15 13:41
(Received via mailing list)
Vedi, Adhearsion  anche platform independent!
/shameless_plug

:D
--
Luca Pradovera
luca.pradovera@gmail.com
71534f04397ad784e01fa97533b9360a?d=identicon&s=25 sickpig@gmail.com (Guest)
on 2013-11-15 14:29
(Received via mailing list)
2013/11/15 Luca Pradovera <luca.pradovera@gmail.com>:
>>> sposto la discussione sulle applicazioni VoIP in Ruby da questa parte se
>>
>> non usiamo adhersion.
>
> Io vi consiglio di non ri-inventare la ruota :)

ci avevo dato un occhiata a suo tempo e all'epoca mi sembrava un po'
andare a caccia di farfalle con il cannone.
pero' adesso le nostre esigenze sono un po' aumentante.. potrebbe
essere il caso di rivalutare
5ffafe70176a99f175d16192fd5be69e?d=identicon&s=25 Luca P. (luca_p)
on 2013-11-15 15:07
(Received via mailing list)
Non so quando lo avevi guardato, ma la versione 2 uscita ad Aprile
dellanno scorso ha cambiato quasi tutto.
In realt la semplicit di gestire le applicazioni in Ruby vs. taroccare
con extensions.conf ed AMI  il punto di forza.
Inoltre  un framework sviluppato per la telefonia da gente che fa
praticamente solo quello, quindi la task X labbiamo sicuramente gi
affrontata.

In questo momento abbiamo un piccolo difetto di diffusione e
documentazione, ma ci stiamo lavorando.

Io a questo punto lHangout introduttivo lo propongo a tutti coloro che
fossero interessati!

--
Luca Pradovera
luca.pradovera@gmail.com
71534f04397ad784e01fa97533b9360a?d=identicon&s=25 sickpig@gmail.com (Guest)
on 2013-11-15 15:25
(Received via mailing list)
2013/11/15 Luca Pradovera <luca.pradovera@gmail.com>:
> Non so quando lo avevi guardato, ma la versione 2 uscita ad Aprile dellanno
scorso ha cambiato quasi tutto.

anni fa (ai tempi asterisk 1.4 o gi di li)

> In realt la semplicit di gestire le applicazioni in Ruby vs. taroccare con
extensions.conf ed AMI  il punto di forza.

buono a sapersi.

> Inoltre  un framework sviluppato per la telefonia da gente che fa praticamente
solo quello, quindi la task X labbiamo sicuramente gi affrontata.
> In questo momento abbiamo un piccolo difetto di diffusione e documentazione, ma
ci stiamo lavorando.

la documentazione  una cosa fattore fondamentale per farsi che una
piattaforma/sw venga adottatto. purtroppo viene spesso lasciata
come "ultima" cosa. e da devel capisco benissimo qual il meccanismo
per cui succede questo.

> Io a questo punto lHangout introduttivo lo propongo a tutti coloro che fossero
interessati!

quando vuoi io sono disponibile.
491498f4267723724c20a244fb1060c5?d=identicon&s=25 Maurizio (Guest)
on 2013-11-15 15:51
(Received via mailing list)
Il 15/11/2013 15:07, Luca Pradovera ha scritto:
> Io a questo punto lHangout introduttivo lo propongo a tutti coloro che fossero
interessati!

Decisamente interessato, ma non riesco prima di settimana prossima. :)
Ba5ff91885d3b2243fa77b69893b5374?d=identicon&s=25 bugant (Guest)
on 2013-11-15 16:09
(Received via mailing list)
Ciao,

2013/11/15 sickpig@gmail.com <sickpig@gmail.com>:
> 2013/11/15 Luca Pradovera <luca.pradovera@gmail.com>:
>> Io a questo punto lHangout introduttivo lo propongo a tutti coloro che fossero
interessati!
>
> quando vuoi io sono disponibile.

anche io parteciperei all'hangout, solo per curiosita' sull'argomento :)

ciao ciao,
matteo.

P.S.: potrei proporvi di farlo un martedi per Hackatron? (hackatron.org)
5ffafe70176a99f175d16192fd5be69e?d=identicon&s=25 Luca P. (luca_p)
on 2013-11-17 16:45
(Received via mailing list)
Molto volentieri!
Come funziona?
--
Luca Pradovera
luca.pradovera@gmail.com
Ba5ff91885d3b2243fa77b69893b5374?d=identicon&s=25 bugant (Guest)
on 2013-11-18 09:22
(Received via mailing list)
Ciao,

2013/11/17 Luca Pradovera <luca.pradovera@gmail.com>:
> Molto volentieri!
> Come funziona?

decidiamo un martedi' che vada bene a chi e' interessato qui in lista
e poi pubblichiamo l'annuncio sulla community G+ di Hackatron. Per chi
e' nei dintorni di Venezia/Treviso ci sara' la possibilita' di seguire
l'hangout fisicamente dallo stesso posto, altrimenti... hangout :)
L'hangout lo facciamo pubblico con streaming live (e registrazione) su
YouTube.

solitamente l'incontro settimanale lo si fa' dalle 18.30 in poi, in
base agli orari che vanno bene a chi e' interessato possiamo fissare
come e' piu' comodo (propongo l'inizio tra le 18.30 e le 19.00).

ciao ciao,
matteo.
Ba5ff91885d3b2243fa77b69893b5374?d=identicon&s=25 bugant (Guest)
on 2013-11-19 18:59
(Received via mailing list)
Ciao,

2013/11/18 bugant <bugant@gmail.com>:
> Ciao,
>
> 2013/11/17 Luca Pradovera <luca.pradovera@gmail.com>:
>> Molto volentieri!
>> Come funziona?
>
> decidiamo un martedi' che vada bene a chi e' interessato qui in lista
> e poi pubblichiamo l'annuncio sulla community G+ di Hackatron. Per chi
> e' nei dintorni di Venezia/Treviso ci sara' la possibilita' di seguire
> l'hangout fisicamente dallo stesso posto, altrimenti... hangout :)

Facciamo per Martedi' prossimo? Va bene sulle 18.30?

ciao ciao,
matteo.
5ffafe70176a99f175d16192fd5be69e?d=identicon&s=25 Luca P. (luca_p)
on 2013-11-19 19:05
(Received via mailing list)
Benissimo per me!
Quanto durano le presentazioni di solito?

--
Luca Pradovera
luca.pradovera@gmail.com
054fb3d4fc53f1a1f99b751fc9c627f8?d=identicon&s=25 Sergio Berisso (Guest)
on 2013-11-19 19:15
(Received via mailing list)
Il giorno 19 novembre 2013 18:59, bugant <bugant@gmail.com> ha scritto:

> Facciamo per Martedi' prossimo? Va bene sulle 18.30?


Bravi, interessante.

Ci scappa anche link (e pubblicit per gli amici in Georgia ... Mojo
Lingo
:)
Ma va bene cos.

S.
Ba5ff91885d3b2243fa77b69893b5374?d=identicon&s=25 bugant (Guest)
on 2013-11-19 19:24
(Received via mailing list)
2013/11/19 Luca Pradovera <luca.pradovera@gmail.com>:
> Benissimo per me!
> Quanto durano le presentazioni di solito?

di solito facciamo 15min.
pero' dimmi anche tu se sono abbastanza oppure no. poi c'e' la
sessione con le domande.
se credi, possiamo fare 20/30 min di talk.

se mi mandi anche un piccolo abstract lo metto nell'evento :)
grazie!

ciao ciao,
matteo.
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.