View Full Version : [Vari] Librerie per VOIP
tomminno
27-07-2010, 00:25
Avrei bisogno di effettuare streaming audio bidirezionale su rete lan, in pratica VOIP, eventualmente anche tra più di 2 utenti con 1 sorgente e N ascoltatori.
Qualcuno conosce qualche libreria adatta allo scopo?
DanieleC88
27-07-2010, 11:03
Devi sviluppare un programma che contiene tutto al suo interno o ti puoi appoggiare a software esterni (vedi Asterisk)?
Penso che quello che chiedi tu lo possa fare ottenere XMPP (http://xmpp.org/software/libraries.shtml) o SIP. Se usi sistemi Linux (o BSD) puoi appoggiarti a Telepathy (http://telepathy.freedesktop.org/) (con backend Gabble o SofiaSIP), oppure, più in generale, potresti usare libpurple (http://developer.pidgin.im/wiki/WhatIsLibpurple), che è quella su cui si appoggia Pidgin.
ciao ;)
tomminno
27-07-2010, 13:41
Devi sviluppare un programma che contiene tutto al suo interno o ti puoi appoggiare a software esterni (vedi Asterisk)?
Penso che quello che chiedi tu lo possa fare ottenere XMPP (http://xmpp.org/software/libraries.shtml) o SIP. Se usi sistemi Linux (o BSD) puoi appoggiarti a Telepathy (http://telepathy.freedesktop.org/) (con backend Gabble o SofiaSIP), oppure, più in generale, potresti usare libpurple (http://developer.pidgin.im/wiki/WhatIsLibpurple), che è quella su cui si appoggia Pidgin.
ciao ;)
Non è un problema appoggiarsi a sistemi esterni purchè siano completamente configurabili dall'esterno tramite configurazione o linea di comando senza intervento manuale dell'utente, principlamente dovrei poter selezionare automaticamente il dispositivo di input e output in quanto per l'output sicuramente mi ritrovo con almeno 2 dispositivi e devo poter istanziare automaticamente la comunicazione.
Ma non dovrei dipendere da nessun tipo di hardware.
Ho visto la libreria pjSip ma ancora non ho capito se fa al caso mio.
Sembra che tutti abbiano un server o un hardware di riferimento.
cdimauro
27-07-2010, 13:58
Se non ricordo male in azienda abbiamo implementato il VOIP con Asterisk.
Ma non chiedermi come abbiamo fatto, perché non ne so nulla (è un mio collega che se n'è occupato). :stordita:
DanieleC88
27-07-2010, 14:40
Asterisk è di una flessibilità mostruosa (forse anche troppo: va proprio "programmato"), quindi va bene per qualsiasi cosa ci devi fare. E non richiede hardware specializzato, può funzionare interamente in software se necessiti solo del VoIP. :)
Tempo fa per l'università ho dovuto scrivere una documentazione introduttiva: copre ben pochi argomenti, ma fa una panoramica veloce e ci trovi alcuni link interessanti per esplorare l'argomento. La trovi qui: http://jmc.altervista.org/asterisk/
ciao ;)
banryu79
27-07-2010, 15:40
La trovi qui: http://jmc.altervista.org/asterisk/
Complimenti per la qualità! :)
(Interessante, tra l'altro 'sto Asterisk)
cdimauro
27-07-2010, 15:48
Asterisk è di una flessibilità mostruosa (forse anche troppo: va proprio "programmato"), quindi va bene per qualsiasi cosa ci devi fare.
Fortunatamente da qualche tempo lo puoi programmare in Python. :cool:
DanieleC88
27-07-2010, 16:06
Complimenti per la qualità! :)
(Interessante, tra l'altro 'sto Asterisk)
Grazie! :flower:
Fortunatamente da qualche tempo lo puoi programmare in Python. :cool:
:p
In realtà mi pare che con l'AGI (Asterisk Gateway Interface) si possa virtualmente programmare in qualsiasi cosa ormai. :)
cdimauro
27-07-2010, 18:15
Ma ovviamente è sempre meglio farlo in Python (che per lo scopo mi sembra decisamente adatto; l'ha usato un mio collega proprio con Asterisk, e ne è rimasto molto soddisfatto). ;)
DanieleC88
27-07-2010, 19:07
Ma ovviamente è sempre meglio farlo in Python
Ah questo di sicuro. In particolare se l'alternativa si chiama Perl. :p
tomminno
28-07-2010, 00:39
Mi sa che Asterisk sia troppo complesso per quello che devo fare.
Alla fine a me serve solo mandare streaming audio bidirezionale, non mi servirebbe nemmeno il SIP, non devo fare un centralino telefonico :)
Forse la cosa più veloce è provare con pjSIP, su libpurple non trovo documentazione per l'utilizzo con VOIP.
Sperando poi che tutto funzioni senza alcun server.
DanieleC88
28-07-2010, 00:42
Eh no, mi sa tanto che sia con XMPP che SIP non puoi fare a meno di avere qualcuno che fa da server... Spero di sbagliarmi, in fondo non ho mai avuto bisogno di utilizzare direttamente i protocolli. :)
tomminno
28-07-2010, 00:47
Esistono alternative per mandare un misero stream audio tra 2 computer?
Avevo inizialmente pensato a vlc, ma andrebbe inventato l'utilizzo in full duplex.
cdimauro
28-07-2010, 05:47
Sempre in azienda, per il solo streaming utilizziamo Darwin (http://dss.macosforge.org/).
Può darsi che per i tuoi scopi funzioni.
tomminno
28-07-2010, 08:50
Sempre in azienda, per il solo streaming utilizziamo Darwin (http://dss.macosforge.org/).
Può darsi che per i tuoi scopi funzioni.
Conosco abbastanza bene DSS per il video, ci ho implementato diversi moduli, ma lo streaming è sempre in una sola direzione: dal server al client.
A me serve gestire dei dialoghi, come una telefonata, ma senza il tu tu :fagiano:
In sostanza è un auditorium dove uno parla e il segnale audio va mandato ai traduttori e da questi va rediretto agli ascoltatori. Questi a loro volta devono poter parlare e quindi il segnale ripassa (eventualmente) dai traduttori per poi essere rediretto a tutti i presenti (presenti che potrebbero essere connessi da remoto).
Fare tutto in hardware ha costi decisamente alti perciò era stata pensata la soluzione software.
cdimauro
28-07-2010, 09:37
In questo caso una soluzione a basso costo è rappresentata sempre da Asterisk, sebbene sia abbastanza complesso.
Tra l'altro non dovrebbe essere un problema recuperare degli esempi, perché si tratta di un software molto diffuso.
Potresti usare RTP come protocollo, magari in Java.
http://javasolution.blogspot.com/2007/04/simple-application-for-voice.html
Ci sarebbe anche questa libreria che ti permette di instaurare una sessione RTP fra un client e un server, ovviamente manca tutta la parte audio che ti dovresti gestire da solo.
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
Edit: ho trovato anche questa libreria che dovrebbe essere già adatta per lo streaming audio e basata su quella sopra: http://research.edm.uhasselt.be/emiplib/emiplib.html
Direi che l'ultima faccia proprio al caso tuo: http://research.edm.uhasselt.be/emiplib/documentation/classMIPAudioSession.html#_details
tomminno
28-07-2010, 23:49
Direi che l'ultima faccia proprio al caso tuo: http://research.edm.uhasselt.be/emiplib/documentation/classMIPAudioSession.html#_details
Cavolo questa sembrerebbe perfetta!
Grazie! :cincin:
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.