MiDenuncia

De Open movilforum wiki

Tabla de contenidos

[editar] ¿Qué es MiDenuncia?

MiDenuncia es una mash-up que permite denunciar situaciones injustas mediante vídeos. Los vídeos pueden subirse vía web o mediante una videollamada, y se almacenan en YouTube.

La aplicación muestra los últimos vídeos de denuncia publicados y los geolocaliza en un mapa proporcionado por GoogleMaps. Además, la aplicación se comunica con los usuarios mediante SMS y MMS (identificarse, confirmar vídeos, enviar vídeos, etc).

Listado de videodenuncias:

Imagen:MiDenuncia-listado.png

Mapa con las videodenuncias geolocalizadas:

Imagen:MiDenuncia-mapa.png

[editar] Motivación

La gran penetración de la telefonía móvil ha facilitado que la mayoría de la gente esté acostumbrada a usar este dispositivo, y no sólo para realizar llamadas telefónicas, sino para utilizar otros servicios como los SMS, MMS, videollamadas etc. Por otra parte, temas como el periodismo ciudadano están a la orden del día: muchos periódicos de nuestro país permiten que se les mande una foto vía MMS para ser publicada en la web del periódico.

No sólo eso, sino que en ciudades como Nueva York el servicio de emergencias permite que los ciudadanos envíen fotos y vídeos para poder actuar rápidamente y con más información (artículo en http://www.enriquedans.com/2008/09/el-911-y-la-sociedad-panoptica.html).

MiDenuncia se enmarca en este contexto, y permite que los usuarios graben vídeos de situaciones injustas (carreteras en mal estado, disturbios, accesos para minusválidos bloqueados, etc) y les den difusión. El hecho de que se puedan enviar vídeos por videollamada es un paso más hacia la usabilidad y comodidad del sistema: no hace falta ningún ordenador para poder publicar una videodenuncia, únicamente se necesita un móvil 3G. Los pasos a seguir son:

  1. Realizar una videollamada
  2. Se recibe un SMS/MMS con instrucciones para la confirmación. Si el vídeo es correcto, se confirma con un SMS pudiendo opcionalmente indicar la localización geográfica. Este paso es muy importante ya que evita subir vídeos erróneos al sistema (llamadas cortadas, error de grabación, etc).
  3. Se recibe un SMS de notificación cuando el vídeo ya se ha subido a YouTube.

Además, no hace falta ningún tipo de registro para poder publicar un vídeo.

Actualmente, MiDenuncia es una prueba de concepto, pero las posibilidades son amplísimas para la mejora: incorporación de nuevos sistemas de recepción de vídeo, mejorando el sistema de recepción de videollamadas, historial completo de denuncias publicadas, búsqueda de denuncias en función de localización geográfica o tags, etc. Además, con la infraestructura que hay montada actualmente, se puede emplear para usos diferentes: vídeos divertidos por parte de usuarios, seguimiento de los actos de las fiestas en una ciudad, ayuda al servicio de emergencias, lifestreaming con Twitter, etc.

[editar] Desarrolladores y enlaces de interés

Enlaces:

Desarrolladores:

  • Ernesto Jiménez (ernesto.jimenez@tractis.com)
  • David García (david.garcia@tractis.com)
  • Belén Albeza (benko@ladybenko.net)

[editar] API's utilizadas

[editar] Subir un vídeo vía web

Paso 1: Identificarse

Haciendo click en el enlace que hay en la barra superior, se accede al formulario de login.

Imagen:MiDenuncia-barra.png

Se introduce el número de telefóno y el usuario recibe un SMS con la contraseña válida sólo para esta sesión (por razones de seguridad).

Imagen:MiDenuncia-login1.png

Imagen:MiDenuncia-sms_codigo.jpg

Al introducir la contraseña se vuelve a la página principal, pero ya estará disponible el formulario de subir vídeo.

Imagen:MiDenuncia-login2.png

Paso 2: Subir el archivo

Se elige el archivo de vídeo a subir y se indica una localización geográfica (p.ej: Plaza del Sol, Madrid).

Imagen:MiDenuncia-upload.png

Paso 3: Confirmar el vídeo

A continuación en la página principal se le avisa al usuario de que tiene un vídeo pendiente de confirmación.

Imagen:MiDenuncia-aviso_pendiente.png

Siguiendo el enlace, se muestra un formulario donde aparece la localización geográfica situada en un mapa. La localización se puede corregir si no es correcta. Para acabar, se sube el vídeo a YouTube.

Imagen:MiDenuncia-form_pendiente.png

Paso 4: Vídeo subido a YouTube

Cuando el vídeo se acabe de subir a YouTube, el usuario recibirá un SMS de notificación.

Imagen:MiDenuncia-sms_publicado.jpg

[editar] Subir un vídeo mediante videollamada

Paso 1: Realizar la videollamada

Subir un vídeo mediante videollamada es más fácil e inmediato, ya que se puede hacer en la calle. Para ello, únicamente hay que hacer una videollamada al número 689311958.

Paso 2: Responder al mensaje de confirmación

A continuación se recibe un SMS o MMS con las instrucciones de confirmación del vídeo. El MMS se envía sólo si el vídeo ocupa menos de 190 KB, y contiene como adjunto el mismo vídeo que ha mandado el usuario. Este paso es muy importante ya que evita intentos fallidos (llamadas cortadas, error del usuario mientras grababa, etc).

Imagen:MiDenuncia-sms_instrucciones.jpg

Para confirmar el vídeo, únicamente hay que enviar un SMS con la palabra OK seguida opcionalmente de una localización geográfica al número 638444957 (IMPORTANTE: Este número es diferente al número remitente del SMS).

Ejemplo de SMS de respuesta:

 OK cibeles madrid

Alternativamente, este paso se puede hacer también vía web, como se describe en el apartado anterior.

Paso 3: Videodenuncia publicada

Por último, el usuario recibirá un SMS cuando el vídeo se haya subido a YouTube.

Imagen:MiDenuncia-sms_publicado.jpg

[editar] Notas técnicas

[editar] Lenguajes de programación

La aplicación se ha desarrollado con el lenguaje Ruby (y el framework Rails), excepto la parte de recepción de videollamadas que ha sido desarrollada en Java.

[editar] Sobre la recepción de videollamadas

El sistema se encarga de la recepcion de llamadas, para ello debe conectarse al sistema de telefonica, autenticarse con las credenciales usuario/contraseña. Para ello consta de:

  • Componente de negociación protocolo SIP:. Se encarga de todo el proceso de registro en la plataforma. Realiza todas las partes de la negociacion de la conexión y el cierre de la misma en caso de que el servicio sea terminado.
  • Componente de escucha de llamadas: Una vez se ha autenticado en el sistema, este componente escucha en el puerto registrado a la espera de llamadas entrantes. Una vez se recibe una llamada, negocia el protocolo de audio/video con el servidor y se encarga de instanciar a los trabajadores que se encargaran de enviar/recibir el contenido de los canales de audio/vídeo. Cuando la parte que realiza la llamada la da por concluida, se encarga de cerrar los canales de comunicación, dar por terminado el ciclo de vida de los trabajadores y lanzar el proceso del material multimedia recibido en la plataforma.
  • Trabajadores audio/vídeo: se encargan de recibir los datos enviados por el servidor. Son dos por cada comunicación abierta (uno para el audio y otro para el vídeo) y funcionan de manera independiente. Se encargan de abrir los canales de comunicación enviar/recibir los datos de control de la comunicación, así como los datos en sí mismos, y una vez recibidos estos pueden aplicar transformaciones sobre el contenido recibido para facilitar su posterior transformación.
  • Conversor de formatos: Una vez concluida la transformación, este componente se encarga de convertir el vídeo en formato h.263 a avi para su posterior entrada en el sistema y subida a terceros sistemas (youtube/mms). Para ello emplea librerias tmndec para la conversion de los frames recibidos a archivos graficos, y los compacta en un vídeo añadiendole ocasionalmente sonido empleando las funcionalidades de la libreria mencoder de linux.

Todos los componentes, salvo el conversor, están realizados en Java y son multiplataforma. El conversor de formatos está relizado en C y shell script y corre sobre linux o cualquier sistema que corra X11 y disponga de mencoder (mplayer).

[editar] Sobre la recepción de SMS

La recepción de mensajes se realiza mediante la API de recepción de SMS's de Open Movilforum. Esta API nos proporciona un número de móvil que va ligado a una dirección de e-mail a la que se envían los SMS. Por lo tanto, la API nos permite acceder a los SMS como si fuesen e-mails.

La técnica habitual para explotar esta API es monitorizar la cuenta de correo cada cierto tiempo para comprobar si hay mensajes que procesar. MiDenuncia, sin embargo, ofrece tres posibilidades para usar esta API:

  • Monitorizar una cuenta de GMail.
  • Monitorizar una cuenta de correo mediante POP3.
  • Arrancar en el puerto 25 un pequeño servidor SMTP.

Mientras que las dos primeras soluciones son muy buenas para hacer pruebas, no son una solución robusta de cara a montar servicios en producción. Es debido a esta inconveniencia que MiDenuncia funciona por defecto arrancando un pequeño servidor SMTP en el puerto 25 que se encarga de recibir los SMS en tiempo real en lugar de examinar una cuenta de correo cada cierto tiempo.

Además, el código dedicado a la recepción de está totalmente desligado de la aplicación MiDenuncia. Los servicios siguen un patrón Observador pudiendo suscribir cualquier observador al servicio de recogida de mensajes.

[editar] Sobre el envío de MMS

Como en Open Movilforum aún no se ha publicado de manera oficial una API de envío HTTP de MMS escrita en Ruby, se ha optado por un desarrollo propio basado en la librería Mechanize, que simula una ejecución "humana" en un navegador de Internet.

[editar] Sobre la API de YouTube

Actualmente, la información de los vídeos enviados a YouTube no se obtiene a partir de gdata, sino que se utiliza el feed del canal de MiDenuncia, ya que está siempre sincronizado.