Desarrollo VoIP android

R3DKNIF3

Hola!
Estoy pensando en hacer una app Android de VoIP, realmente he encontrado poca cosa por internet.

Por eso quería preguntar a ver si algún forero ha intentado alguna cosa y que opinión tiene, dificultad, costes (servidores, hosting.. ) .

Por lo que he leído se suele basar en SIP y en la 2.3 hay una API que no funciona con todos los terminales ni versiones.

Realmente de momento he indagado poco, por eso me gustaría hacerme una pequeña idea general para seguir o no con la búsqueda.
Saludos, muchas gracias!

elkaoD

Yo te puedo decir que el mercado VoIP está masificado. Si lo haces por aprender, guay. Si lo haces por ganar pasta, estás jodido xD

R3DKNIF3

Bueno es en parte las dos cosas. No esta todo inventado, y la idea que tengo no existe aun xD

Pero bueno, por eso antes de plantearme siquiera empezar, mgustaria saber los costes y dificultades que podria ocasionarme, ya que como todos supongo, el tiempolibre no m sobra.

elkaoD

Pues dificultades, fuera de la implementación concreta que quieras darle, no creo que ninguno. Grabar -> Encodear -> Enviar al servidor -> Enviar al 2º cliente -> Desencodear -> Reproducir. El gran problema de VoIP es el escondido de la pérdida de paquetes (especialmente en móvil) y pequeños problemas como la cancelación de ruido y de eco acústico, pero la mayoría de codecs (al menos los que conozco) incorporan medidas. Otra cosa es que quieras hacerte tu propio codec, idea que NO te recomiendo.

Lo que no sé es cómo puede encodear tu dispositivo. Hay codecs realmente ligeros optimizados para la transcripción de audio de voz (véase Speex, ¡que encima es libre!)

¿Costes? El ancho de banda, y aquí se te va a ir MUUUCHO del presupuesto. El Speex más "cutre" son 2kbps. Calcula tú mismo...

No sólo no vas a ganar pasta si no que vas a palmarla (o a mí se me escapa algo.) Ya no es el coste del ancho de banda instantáneo (1000 usuarios a la vez = 2Mbps de subida) si no del tráfico global. Por poner un ejemplo: con que al día haya 24 horas de conversación (la suma de todas las conversaciones) se te van 2436002 = 200Mb al día.

Y todo esto con la calidad más cutre que te puedas echar en cara y con conversaciones de 1 a 1 (el ancho de banda se multiplica con conversaciones grupales.)

PD: he supuesto en todo momento que no vas a liberar el servidor y que cada cual se monte el suyo, si no que tú vas a tener un servidor central.

1 respuesta
TaiCHoKe

Yo intenté hace un tiempo y te recomendaría que antes de hacer el VoIP móvil hazlo fijo que ya es bastante follón de por si.

Yo estuve probando con asterisk, pero ya te digo que no llegue a acabarlo.

http://www.asterisk.org/

1 respuesta
PandragoQ

#5 Estas un poco confundido... asterisk es un software de PBX, no tiene nada que ver con lo que quiere hacer #1, que es un cliente SIP para Android.

Y follon, ninguno... descargar, compilar (si quieres una version nueva, sino apt-get y santas pascuas), instalar.. meterle freepbx para facilitar un poquito la administracion, y liarte a montar extensiones y trunks. Tiempo total de la instalacion: 30-40 minutos.

1 respuesta
TaiCHoKe

#6 Pero puede intentar montarse un SIP con asterisk para ir probando y tal no?

Me habian dicho que era facil y tal, como dices tu para montar en media hora por ahi, pero me daba la chapa aprenderme su lenguaje de scripting para configurarlo

1 respuesta
PandragoQ

#7 Cierto, configurarlo "a pelo" es bastante sufrido... pero echale un ojo a FreePBX, que es una aplicacion web para gestionar Asterisk...

NeV3rKilL

#4 Una duda que yo tengo...

¿Porqué estás pensando en un modelo centralizado y no voip de verdad de ir de un terminal al otro directamente?

No se demasiado del tema y la mayoría de servicios como skype se que van a través de un servidor intermedio que no sé que utilidad real tiene a parte de poder espiar.

#10 Creo que la última vez que lo miré con un netstat los datos pasan por un servidor propio.

3 respuestas
B

#9 skype es p2p si no me confundo.

Será tráfico tcp para actualizaciones etc

1 respuesta
elkaoD

#9 porque en móvil no puedes hacer P2P hasta donde yo sé.

TaiCHoKe

#9 No todas las redes p2p son descentralizadas.

El servidor intermedio hace de 'enrutador' por asi decirlo. Una vez estan enrutados la conexión es directa y no pasa por este servidor.

Basicamente solo con un login de skype no te llega para comunicarte

1 respuesta
NeV3rKilL

#12 Creo que no entiendemos lo mismo por p2p. El p2p es peer to peer, sin servidores en medio. Otra cosa es que para que los dos peers se conozcan necesiten un servidor, que este no es el caso. El caso skype es que el trafico del audio pasa por un tercero que no pinta nada.

Tu llama a alguien con skype pidele la IP y hazte un netstat a ver si ves esa ip, que debería estar si realmente es p2p.

edit: En las conversaciones con varias personas está claro que lo normal es pasar por un servidor, pero para charlas de 2 personas es simplemente para espiar.

2 respuestas
elkaoD

#13 para ahondar en mi respuesta anterior: en móvil tú vas de una centralita a otra. No estás siempre enchufado al mismo lado y por tanto hay graves problemas en el enrutado de paquetes.

Es una de las muchas razones por las que no puede haber p2p en el móvil.

2 respuestas
TaiCHoKe

#13 http://es.wikipedia.org/wiki/Peer-to-peer#Redes_P2P_centralizadas

1 respuesta
NeV3rKilL

#15 Eso es lo que yo dije. El servidor únicamente sirve para que los nodos se conozca. Pero los datos no pasan a través de ese servidor. Vamos que los datos se envían entre los usuarios sin pasar por el servidor pero en skype los datos pasan por el servidor de skype.

#14 Sí en móviles lo entiendo, pero es que el skype de ordenador funciona igual.

2 respuestas
R3DKNIF3

la verdad es que ando bastante perdido, me tendre que mirar con calma todas las opciones, muchas gracias por los comentarios!

TaiCHoKe

#16 Mmm... Acabo de comprobarlo y veo claramente la IP del colega al que he llamado. Tambien veo otras 3 que deben ser de los servidores de skype, para actualizaciones, controlar session etc.

Las 3 que he obtenido de Skype son estas

spoiler

#14 Creo que en moviles tambien va por p2p. Debería comprobarlo pero no veo porque no iba a funcionar. En llamadas ordinarias también hay el problema de las centralitas y funcionan.
Por curiosidad he buscado apps que usen p2p en móviles y he encontrado alguna http://www.xataka.com/moviles/p2p-en-los-telefonos-moviles

1 respuesta
elkaoD

#16 en PC porque no todo el mundo es capaz de abrir puertos. Creo que Skype es híbrido y si no puedes conectar P2P hacen ellos de intermediario (lo cuál añade latencia, por eso prefieren P2P... y porque les sale más barato xD)

#18 no me compares internet con voz xD Por mucho que VoIP sea voz, sigue yendo sobre IP (VoIP lol) por lo que tiene ciertos problemas que la voz a secas no tiene (como cambios COMPLETOS de ruta.) Además tu IP va "itinerando" y aunque siempre tengas una misma IP externa hay protocolos que necesitan sincronizar ese cambio interno.

Lo explico un poco vago porque la verdad que no es el tema al que me dedico y se me va yendo de la memoria, pero los problemas están ahí.

Además ese P2P no pasa nada por que te caigas ya que no hay problema en que pierdas algunos paquetes, mientras que en VoIP con perder unos pocos paquetes estás jodido.

1 respuesta
TaiCHoKe

#19 Hombre el VoIP que yo tengo entendido va por UDP que es la zarria en cuanto a perder paquetes asique tampoco creo que sea tan complicado hacerlo para móviles.

Skype tiene dos casos de uso por así decirlo:

VoIP: Gratis

Cliente -> Servidor Skype (con transformador y la pesca) -> Red Conmutación -> Teléfono móvil o fijo por llamada convencional : Esto si que realiza todas las llamadas por el servidor, y te cobran.

Yo por inducción de borrego diría que todo lo gratis es VoIP y lo demás pues por red de telefonía convencional.

Yo esto tambien lo tengo bastante oxidado pero bueno, ya por curiosidad a ver si sabe como va

Usuarios habituales