BlueZSpammer: Marketing de proximidad con un HotSpot Bluetooth casero
La página web oficial de la herramienta es: http://gospel.endorasoft.es/bluetooth/especificacion-bluetooth/bluez/bluezspammer.html
Video Demo de BlueZScanner: http://youtube.com/watch?v=CVlxplbgxeM
Marketing de Proximidad basado en Bluetooth
Se denomina Marketing de Proximidad basado en Bluetooth al envío de contenidos de información y publicidad a teléfonos móviles Bluetooth como estrategia de promoción por parte de algunas marcas corporativas.
Algunas compañías han desarrollado campañas de publicidad en las calles basadas en el envío masivo de publicidad directa al teléfono móvil a través de Bluetooth. Emplean dispositivos emisores colocados en puntos estratégicos de elevado tránsito de personas capaces de enviar en un rango de 100 metros paquetes de publicidad personalizados que se adecuan al modelo de teléfono móvil que recibe la información.
Muchas instituciones, tales como ayuntamientos, han comprobado el éxito de este tipo de estrategias y han instalado sistemas de envío de información en puntos de interés general, como zonas turísticas, aeropuertos e intercambiadores de transporte público, edificios históricos y museos.
(http://gospel.endorasoft.es/bluetooth/especificacion-bluetooth/bluez/Temp/marketing.jpg)
¿Cómo funciona el Marketing de Proximidad?
El Marketing de Proximidad basado en Bluetooth hace uso fundamentalmente del Perfil de Carga de Objetos (http://gospel.endorasoft.es/bluetooth/especificacion-bluetooth/perfiles-bluetooth/index.html#PCO) (OBEX Object Push) disponible en la mayoría de teléfonos móviles y smart phones. Por lo general, el acceso a este Perfil requiere autorizaciónpero no autenticación. Esto significa que no es necesario que los dispositivos se encuentren emparejados, simplemente basta que el usuario del dispositivo destino autorice el envío de archivos del dispositivo origen.
El funcionamiento de un HotSpot Bluetooth capaz de enviar spam es bastante sencillo. Su tarea es descubrir otros dispositivos Bluetooth activos en su radio de cobertura y proceder al envío de objetos de información con conexiones a través del Perfil de Carga de Objetos (OBEX Object Push).
Los objetos de información enviados por el HotSpot Bluetooth pueden ser de diversa naturaleza y adaptables en función del modelo de teléfono móvil que vaya a recibir el archivo. Así, el objeto a enviar puede tratarse de un archivo de texto, una imagen, un archivo de audio, un video o incluso un paquete instalable con contenidos de publicidad, como un tema para el interfaz o un salvapantallas. El nivel de sofisticación del HotSpot para personalizar contenidos al teléfono móvil destino dependerá de su capacidad para identificar el modelo de dispositivo y conocer los tipos de archivos soportados por su sistema operativo.
BlueZSpammer, el HotSpot Bluetooth basado en BlueZ
BlueZSpammer es un sencillo HotSpot capaz de enviar archivos a teléfonos móviles y smart phones Bluetooth con soporte para el Perfil de Carga de Objetos (OBEX Object Push). Utiliza la pila de protocolos BlueZ para Linux y está desarrollado en lenguaje C.
(http://gospel.endorasoft.es/bluetooth/especificacion-bluetooth/bluez/Temp/bluezspammer.jpg)
Requisitos para funcionar:
- PC + módulo Bluetooth
- Linux
- BlueZ
- OpenObex
Implementa las siguientes funciones:
- Detección de dispositivos Bluetooth cercanos.
- Filtro de teléfonos móviles y smart phones.
- Modo Demo, solo descubre dispositivos susceptibles de recibir spam.
- Filtro de códigos MAC de fabricantes de chips Bluetooth, para enfocar el público de dispositivos destino. (Opcional)
- Envío de archivos a través del Perfil de Carga de Objetos (OBEX Object Push) con ayuda de ObexPush.
El código fuente de BlueZSpammer se distribuye libremente bajo licencia GNU.
Se necesita tener instalados los paquetes de librerías bluez-libs-devel, openobex y openobex-apps (dependientes de cada distribución Linux).
BlueZSpammer es una herramienta desarrollada con fines científicos y educacionales. No debe ser utilizada como herramienta de spam en lugares públicos con fines comerciales o de fastidio para otras personas.
El autor no tiene ninguna responsabilidad sobre el uso que pueda darse a esta herramienta.
Herramienta: BlueZSpammer (http://gospel.endorasoft.es/bluetooth/especificacion-bluetooth/bluez/Files/BlueZSpammer_src.zip)
(http://gospel.endorasoft.es/bluetooth/especificacion-bluetooth/bluez/Temp/bluezspammer_h.jpg)
(http://gospel.endorasoft.es/bluetooth/especificacion-bluetooth/bluez/Temp/bluezspammer_d.jpg)
(http://gospel.endorasoft.es/bluetooth/especificacion-bluetooth/bluez/Temp/bluezspammer_f_o.jpg)
(http://gospel.endorasoft.es/bluetooth/especificacion-bluetooth/bluez/Temp/bluezspammer_enviado.jpg)
Muy bueno, si señor.
Tiene muy buena pinta, cuando tenga un rato lo compilo a ver que tal...
;D
Muy bueno :-) espero que no saturen los cel de spamm las empresas
Deseo comprar un modulo bluetooth cual me recomiendan
Acabo de subir un video demo del funcionamiento de BlueZSpammer a YouTube.
http://youtube.com/watch?v=CVlxplbgxeM
Hola a todos perdonad mi ignorancia pero, me da un error a la hora de enviar el fichero, tengo que decir que llevo con Ubuntu instalado en el portatil como 1 semana y es la primera vez que uso un SO linux.
Me detecta perfectamente un nokia n70 que tengo pero cuando va a enviar el fichero da un error "sh: obex_push: orden no encontrada" tengo instalado openobex 1.0. a que puede ser debido ese error.
gracias y saludos, David.
Eso es que no tienes el paquete Openobex-apps..
A mi me pasa lo mismo con el live cd backtrack (el ordenador con linux tiene la fuente estropeada)...
Pero despues probaré a cambiar el disco duro y a ver si lo compilo en un sistema decente, no esta live-cd que tengo para no tener que usar windows.. :D
Lo he mirado y si lo tengo instalado, por si acaso lo he vuelto instalar y sale el mismo error.
Es verdad... acabo de arrancar con el otro disco duro y acabo de compilar el bluezspammer.. me daba el mismo error y he bajado openobex-apps.. no me ha dado mas dependencias y se lo ha bajado.. he vuelto a ejecutar bluezspammer y otra vez el mismo error..
Pero bueno, una sencilla busqueda:
usuario@maquina:$ apt-file search obex_push
nos da efectivamente que no està ... xD
y veo que lo mas parecido a obex_ que hay es:
apt-file search obex_
kdebluetooth: usr/bin/kioobex_start
kdebluetooth: usr/share/applnk/.hidden/kioobex_start.desktop
libobexftp-dev: usr/include/cobexbfb/cobex_bfb.h
libopenobex-1.0-0-dev: usr/include/openobex/obex_const.h
openobex-apps: usr/bin/irobex_palm3
openobex-apps: usr/bin/obex_tcp
openobex-apps: usr/bin/obex_test
y como se puede ver, de openobex-apps solo estan esos 3..
por contra en esta web http://www.linuxmanpages.com/man1/obex_push.1.php
habia visto que obex_push corresponde a openobex-apps.. por eso te he dicho antes que si tenias ese paquete..
Saludos
Antes de ejecutar BlueZSpammer debes asegurarte de que tienes ObexPush correctamente instalado en el sistema y su directorio está agregado al PATH.
Prueba a ejecutar "obex_push" desde cualquier directorio. Si funciona debería funcionar BlueZSpammer ya que simplemente hace una llamada al sistema con system( ). Si no funciona o no encuentra el comando ObexPush, entonces no lo tienes correctamente instalado y ahi no puedo hacer nada.
(http://gospel.endorasoft.es/especificacion-bluetooth/perfiles-bluetooth/Temp/obex_push.jpg)
De acuerdo, gracias de todos modos, seguiré intentando lo del obex_push a ver si consigo que funcione... Tengo ganas de probar el Bluezspammer :D
Saludos.
Pues despues de intentarlo no puedo ejecutar obex_push no hay manera openobex-apps no lo trae, y lo unico que encuentro en google es mas de lo mismo, pero no funciona ni como user ni como root.
Gracias y salu2
Amigos mios, despues de haber estado tan alejado de Bluetooth me encuentro con esta primicia que es BlueZSpamer, gracias denuevo Gospel, el problema es que como los demas en el foro...TAMPOCO TENGO OBEX_PUSH, estuve googleando por todo el mundo encontrando solo preguntas y no respuestas, parece que en los paquetes RPM para fedora y mandrake se encuentra esta aplicacion, ya que ni en todos los ubuntu o debian el paquete openobex-apps solo trae las aplicaciones mencionadas, pero nada de obex_push, porfavor quien sepa algo....avise...saludos
Me parece una aplicación muy curiosa, pero tampoco tengo obex_push (en Ubuntu).
Alguna alternativa?
Gracias.
Como muchos de ustedes me tope con el problema del obex_push.. actualmente estoy usando Fedora 6 y la version de obexapps que trae no vienen con este.. asiqe desinstale casi todo lo que tiene que ver con bluez y openobex y instale versiones anteriores de rpm como la openobex-1.0.1-3.0.FC4, openobex-apps-1.0.0-8 y bluez-libs-2.25-1..
y ahi aparecio el obex_push en el path..
el unico problema es qe si se actualiza todo a las ultimas versiones despues de hacer esto lo elimina.. y tambien si lo guardamos en otro directorio, despues de actualizar, no permite ejecutarlo porqe no encuentra la libreria openobex de la version vieja..
La nueva versión de BlueZSpammer permite utilizar ObexFTP en lugar de ObexPush para enviar archivos. Soy consciente de que es dificil encontrar ObexPush y echarlo a andar...
Hola Gospel,
Antes de nada felicitarte por todo...
Llevo buscando el obex_push para ubuntu, y no encuentro nada de nada...
He entendido, no se si bien, que con ussp-push se hace lo mismo que con el obex_push... Pero no se como usar el comando, porque en /dev no hay ningun rfcomm. El bluetooth es usb....
Alternativa...
Como puedo hacer para mandar los archivos con el obexftp , sin tener que vincular el movil o sin tener que andar metiendo el PIN? es posible?
Seria posible automatizar un proceso con obexftp , para que mande una imagen a todo dispositivo que detecte? Mientras el usuario lo acepte claro..
Gracias..
Hola,
Creo que Gospel todavia esta por las tierras lejanas de oriente.
Te comento yo algunos aspectos por si te vale mis respuestas:
Citar
Como puedo hacer para mandar los archivos con el obexftp , sin tener que vincular el movil o sin tener que andar metiendo el PIN? es posible?
El perfil de Obex FTP esta implementado (en practicamente la totalidad de los terminales) para que necesite autentificacion (pida PIN). Esto es debido a que con este perfil tambien puedes obtener ficheros, como puedes enviarlos.
Esto quiere decir que no es una seguridad que se pueda decidir en origen, si no que esta ya previamente configurada en destino.
Vamos que si usas ese perfil siempre te pedira PIN: A no ser que haya algun terminal en que el fabricante no hallan colocado el tema.... pero lo dudo, por que normalmente cuando hay un cambio en seguridad suele ser mas restricitivo que "liberal".
Citar
Seria posible automatizar un proceso con obexftp , para que mande una imagen a todo dispositivo que detecte? Mientras el usuario lo acepte claro..
Eso es lo que hacen la mayoria de las aplicaciones de Marketing de proximidad (como nuestro
XBlue).
Evidentemente no lo realizan ejecutando procesos externos como el comando obexftp y/o el ussp-push. Esa tecnica es altamente "engorrosa": Tanto por velocidad como por control. Date cuenta que la gente pasa muy "rapido" por un entorno de este tipo. Si ya de por si el inquiry (busqueda) de bluetooth es lenta, si le añades una gestion de envio de esta forma se vuelve asi "muy complicado". Ademas si tubieras la gracia añadida de la aplicacion pueda funcionar en distintos sistemas operativos (Linux, Windows) como es el ejmplo de
XBlue esto es totalmente invalido.
:(
La solucion para tener un control mayor del tema es mejor implementar directamente los comandos obex. Eso es lo que hemos echo por ejemplo nosotros. Asi puedes controlar mejor los procesos "concurrentes", fundamentales en este tipo de aplicaciones.
Por ultimo comentar:
No se si sera tu caso, pero el ejemplo de Gospel... es eso: un ejemplo. No es un punto de partida para hacer algo mas elaborado o incluso "seudo-comercial". Hay mucha gente que lo esta cojiendo como base para algo mas serio .....y creo yo que este para eso.
:o
Saludos,
Sir Graham.
Hola a todos, espero que esto les sirva. Viendo el código de bluezspammer, me di cuenta de que está muy bien pensado para manejar diversos protocolos y validaciones, etc. Yo escribí algo un poco más sencillo y muy limitado, pero me ha funcionado aquí en mi oficina, es un archivo que llamé sendBT y cuyo código les transcribo aquí. Para que funcione sólo tienen que darle el atributo de ejecutable y pasarle un archivo como parámetro: p.ej. sendBT imagen.jpg
Espero que les sirva, usa ussp-push porque yo tengo ubuntu y es un rollo conseguir que funcione el obex-push
Hace algunos años que no programo y estoy medio oxidado, así que no sean crueles, jejeje
#!/bin/bash
function showAddr
{
cadena=$1
if [ ${#cadena} -gt 2 ]; then
if [ ${cadena:2:1} = ':' ]; then
echo $cadena
fi
fi
}
function scanBT
{
for dispBT in $( hcitool scan ); do
showAddr $dispBT
done
}
function sendIMG
{
echo Enviando $4 al dispositivo $1 por el canal $3
ussp-push $1@$3 $4 $4
}
for addr_BT in $( scanBT ); do
chan_BT=`sdptool browse $addr_BT | grep -A 8 "(0x1105)" | grep Channel`
if [ ${#chan_BT} -gt 0 ]; then
sendIMG $addr_BT $chan_BT $1
fi
done
Hola,
Nosotros hemos implemantado la solución vía hardware y la estamos comercializando. Empezamos hace algo más de dos años. Los comienzos fueron utilizando hardware convencional (intefaces bluetooth y software) pero los resultados no eran lo deseable. Actualmente estamos haciendo aplicaciones para moviles que son enviadas vía bluetooth. la pagina web es <a href="http://www.bluehertz.es">www.bluehertz.es</a>
saludos a todos ;)
Hola,
Cuando Gospel en su momento nos comento el hacer esta aplicacion "casera" de marketing de proximidad, nosotros en EndoraSoft ya estabamos haciendo cosas "profesionales" en ese ambito desde el 2003 (en diferentes plataformas). Es nuestro sistema XBlue.
Asi todo le apoyamos y le dimos algunos consejos. Uno de ellos .... (y no me cansare de decirlo) Es que en el "Marketing de proximidad" lo mas sencillo es el envio de ficheros por bluetooth. Cualquiera sabe hacer eso. El problema viene despues: toda la gestion y control necesarios para hacer todos las aplicaciones que permite (o puede permitir) un sistema de este tipo.
Ademas, todo ello indudablemente haciendo un hardware propietario destinado exclusivamente para este fin... (no como, por ejemplo, el Access Point de Bluegiga, que fue desarrollado para otra cosa, o incluso el uso de PCs, etc...)
Nos llegan muchos emails de gente que esta intentando hacer cosas, sin percatarse del trabajo o las dimensiones de un proyecto de este tipo (para hacerlo bien claro)... como ya envia por bluetooth lo demas parece que "no es importante"...
;D
Luego se encuentran con los problemas: concurrencia, moviles raros, permanete actualizacion de la base de datos, aplicativos que se salen fuera de lo que su diseño puede hacer....
Me temo que esa es la dura realidad...
Aprovecho para Felicitaros a todos los miembros del foro el nuevo año....
O como diria Xenu (moderador de nuestro foro) la celebracion que realizais los mortales por dar una vuelta completa a vuestra estrella....
Saludos,
Sir Graham
Cita de: SirGraham en 27 Diciembre 2008, 10:49 AM
Aprovecho para Felicitaros a todos los miembros del foro el nuevo año....
O como diria Xenu (moderador de nuestro foro) la celebracion que realizais los mortales por dar una vuelta completa a vuestra estrella....
Este Xenu y su rollo cienciológico... xDDDD
¡FELIZ AÑO a ti también!
Hola Gospel,
Andas por esas tierras de Dios... o has vuelto a casa por navidad (como el turron)?
Ya me contaras que tal te va....
Saludos,
Sir Graham.
Hola a todos,soy un poco nuevo en esto y estoy tratando de hacer un hotspot casero con solo un modulo bluetooth y a ver si me podeis ayudar.
¿Se podría con un solo bluetooth(hci), extraer servicios y enviar todo concurrentemente o hacen falta dos?. Si es asi, ¿que seria mejor? un proceso para cada tarea y su hilo o hilos correspondientes o solo un proceso con un thread para extraer y otros 6 para enviar?
Y una ultima, para gestionar concurrentemente el envio de archivos,¿hay que especificar en algun sitio (libreria, o programandolo a parte) que tal envio se hace por tal "canal", y otro envio por otro?(entendiendo por canal a una de las 7 conexiones concurrentes que puede hacer un modulo bluetooth), o eso lo gestiona automaticamente el bluetooth hasta llegar a las 7 conexiones simultaneas?
Muchas gracias. Un saludo
Hola,
Trato yo de contestar a tus dudas... ya que creo algo de experiencia tengo en el tema...
:)
Citar¿Se podría con un solo bluetooth(hci), extraer servicios y enviar todo concurrentemente o hacen falta dos?
No. no hacen falta dos, pero con uno estas bastante mas limitado.
Citar¿que seria mejor? un proceso para cada tarea y su hilo o hilos correspondientes o solo un proceso con un thread para extraer y otros 6 para enviar?
Nosotros empleamos threads multiples para el proceso general de envio y para cada envio en si. En el de busqueda tambien se emplean theads (en las distintas fases de busqueda) mas que nada para evitar ciertos procesos que son bloqueantes. Aunque esto depende mucho del stack de bluetooth y del SO que estes usando (nosotros lo tenemos para varias plataformas: Windows, Linux, Symbian, nuestra plataforma propia, etc...). Por ejemplo en el caso concreto de linux, lo tenemos tambien hecho en noblocking, con lo cual podriamos prescindir del ciertos threads.
No obstante, como diria Yoda:
Los threads poderosos son, pero con ellos tener cuidado debes... mi padawan...Manejar threads implica un control de datos exaustivo en cada momento, en este caso complica mucho el tema si no se hace "escrupulosamente" bien.
CitarY una ultima, para gestionar concurrentemente el envio de archivos,¿hay que especificar en algun sitio (libreria, o programandolo a parte) que tal envio se hace por tal "canal", y otro envio por otro?(entendiendo por canal a una de las 7 conexiones concurrentes que puede hacer un modulo bluetooth), o eso lo gestiona automaticamente el bluetooth hasta llegar a las 7 conexiones simultaneas?
Por supuesto tienes que realizar una conexion, a cada terminal por su canal correspondiente (en este caso del del Obex Push) y enviar la informacion segun el protocolo de Obex. Lo de los canales se "sobreentiende" por que si no no tendria ningun sentido usar el SDP en la busqueda. Con un simple inquiry tendriamos suficiente.
No obstante, (por si se te ha pasado por la cabeza)
el uso de aplicaciones externas para el envio (como es el caso del BluezSpammer) es incompatible con el uso de threads en concurrencia (si ya de por si es complicado usar threads sin mas, usando con una ejecucion externa de una aplicacion puede pasar cualquier cosa). Asi que lo mas prudente es implementarse el protocolo OBEX y realizar la conexion directamente...
Por otra parte no esperes ("ni de coña") poder llegar a las 7 conexiones simultaneas. En un envio de ficheros el ancho de banda disponible del bluetooth no te da aunque sea Bluetooth 2.0. Todos los que en Marketing de proximidad calculan las conexiones concurrentes segun la formula:
El numero de modulos bluetooth disponibles x 7 = numero conexiones concurrentes que pueden hacer.
... te mienten DESCARADAMENTE!!!!. :P
Como comentario final: una herramienta de estas (marketing de proximidad) parece sencilla al principio...
...pero segun vas mentiendote en el tema ... se torna MUUUCCHOOO mas complicada de lo que parecia. ;D
Saludos,
Sir Graham.
Gracias, por tus respuestas.
Me quedan dudas acerca de cuales procesos son bloqueantes.
por ejemplo ¿podría hacer la extraccion de servicios de 2 moviles a la vez? o bien extraccion a un movil y envio a otro concurrentemente,usando algun mecanismo de sincronización entre los hilos como mutex,semaforos, regiones...
Gracias
Hola,
Entiendo por "extraccion".... a un Inquiry de Bluetooth. Osea obtener los datos de los terminales con bluetooth cercanos.
La operacion bloqueante es un Inquiry.
Esto no quita que no puedas en un thread estar realizando otras. De echo para poder usar el Inquiry sin bloqueo es necesario o bien usar threads o en el caso de Linux implementarla en comandos simples de HCI.
Ahora bien, un scanner completo de Marketing de proximidad es algo mas que un Inquiry.... vamos bastante mas....
...y hasta aqui puedo leer ... como en el 1,2,3....
Saludos,
Sir Graham.