SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Marketing de proximidad y
 Herramientas OpenSource
                               GCDS09
   Roberto Dí az Ortega (info@rdiaz.es)
Gema Socorro Rodrí guez (info@gemasr.com)
Universidad de Las Palmas de Gran Canaria
Sesión 2



Librería Bluez
   Funcionalidades
   Arquitectura
   Ejemplo de uso

Librería Bluecove
   Estructura
   Ejemplo de uso

Diversas demos sobre funcionamiento de BlueZ y bluecove
¿Qué es BlueZ?


BlueZ proporciona soporte para el núcleo de Bluetooth y sus
protocolos, además dispone de interesantes características
como:

 ✔   Implementación completamente modular
 ✔   Sistema Multithread
 ✔   Soporte para multiples dispositivos Bluetooth
 ✔   Abstracción real del hardware
 ✔   Socket standard para todas las capas
 ✔   Soporte de seguridad a nivel de dispositivo y servicio
¿Qué es BlueZ? (II)

Actualmente Bluez implementa los siguientes módulos:


 ✔   Bluetooth kernel subsystem core
 ✔   Capas L2CAP y SCO audio kernel
 ✔   RFCOMM, BNEP, CMTP y HIDP kernel
 ✔   HCI, UART, USB PCMCIA y virtual devices drivers
 ✔   Librerias generales y librerias SDP así como demonios
 ✔   Utilidades de configuración y testeo
 ✔   Decodificadores de protocolo y herramientas de análisis
Arquitectura de BlueZ


GNOME      KDE           Maemo     OpenMoko




            D-Bus System Bus




          BlueZ Core + Servicios
Arquitectura de BlueZ (II)
Arquitectura de BlueZ (III)


La Pila de protocolos de BlueZ esta definida como:
Empieza la acción....

   La librería BlueZ esta disponible en la mayoría de las
   distribuciones linux actuales:




La instalación en distribuciones tipo debian:
                    apt-get install libbluetooth-dev bluez-utils

La instalación en distribuciones tipo fedora:
                             yum install bluez-devel

Para envíos bluetooth también es necesario instalar ObexFTP
Empieza la accion... (II)

Una vez instalada la librería BlueZ en el equipo se tiene acceso
directo desde la consola de comandos al dispositivo bluetooth:


Inicio del servicio de bluetooth en el equipo:


                    /etc/init.d/bluetooth start


Una vez iniciado el servicio comenzamos a trabajar con el
hcitool, la herramienta del controlador del interfaz.
hcitool

Una vez instalada la libreria BlueZ se tiene acceso directo al
dispositivo bluetooth desde el equipo.

El comando hcitool permite obtener y configurar gran parte de
las características bluetooth:

 ✔ dev: Listado de dispositivos locales
 ✔ inq: Busqueda de dispositivos remotos
 ✔ scan: Busqueda de dispositivos remotos
 ✔ name <bdaddr>: Nombre de un dispositivo remoto
 ✔ info <bdaddr>: Información de un dispositvo remoto
 ✔ con: listado de conexiones abiertas
 ✔ rssi: nivel de potencia de señal recibida
hcitool (demo)
sdptool



Una vez se conocen los dispositivos por medio del hcitool.
sdptool permite obtener los servicios bluetooth asociados a
cada dispositivo remote:



 ✔ search <bdaddr> service: búsqueda de servicios
 ✔ browser <bdaddr>: Listado de servicios remotos
sdptool (demo)




Teclado no encontrado… presione
      cualquier tecla para continuar…
                                  by Windows
rfcomm




El servicio rfcomm implementa un puerto serie vía bluetooth:



 ✔ bind <dev> <bdaddr> <canal>: Abre una conexión
   RFCOMM
 ✔ release <dev>: Cierra conexión abierta
Comandos AT (hacking mode ON ...)


Los comandos AT permiten acceder a las capacidades de
comunicación de los dispositivos remotos a través de bluetooth:

 ✔ ATI: Devuelve el fabricante del dispositivo
 ✔ AT+CGMM: Devuelve el modelo del dispositivo
 ✔ AT+CGMR: Devuelve el firmware del dispositivo
 ✔ AT+CGSN: IMEI del terminal
 ✔ AT+CBC: Devuelve la carga de la batería
 ✔ ATD<numero>;: Inicia una llamada de teléfono
rfcomm y Comandos AT (demo)
obexftp y el marketing




Obexftp es una aplicación que permite el envío de archivos
a través del protolo OBEX:



      obexftp -b <dbaddr> -B <canal Obex> -U -p <fichero>
obexftp demo
Integrando todo .... (demo)




Llegados a este punto se disponen de todas las herramientas
necesarias para llevar a cabo la integración y creación del
primer emisor bluetooth
Bluecove



Bluecove es una libreria java que implementa la especificación
JSR-82 multiplataforma.


✔   La librería soporta los siguientes perfiles bluetooth:
✔   SDAP: Perfil de descubrimiento de servicios
✔   RFCOMM: Emulación del puerto serie
✔   L2CAP: Enlace lógico y protocolo de adaptación
✔   OBEX:Protocolo de intercambio de archivos
Bluecove
Bluecove (LocalDevice)


La clase LocalDevice define las funciones básicas de bluetooth
sobre el dispositivo local


✔   getBluetoothAdress: obtiene la dirección local
✔   getDeviceClass: Obtiene la clase del dispositivo local
✔   getDiscoverable: Permite saber si el dispositivo es descubrible
✔   getDiscoveryAgent: Obtiene el discovery agent del dispositivo
✔   getFriendlyName: Obtiene el nombre del dispositivo
✔   getLocalDevice: Obtiene el control del dispositivo local
✔   setDiscoverable: Configuración descubrible
Bluecove (RemoteDevice)



La clase RemoteDevice define las funciones básicas de bluetooth
sobre el dispositivo remoto


✔ getBluetoothAdress: obtiene la dirección remoto
✔ getFriendlyName: Obtiene el nombre del dispositivo
✔ getRemoteDevice: Control del dispositivo remoto bajo un
 protocolo determinado por conn
Bluecove (DiscoveryAgent)



La clase DiscoveryAgent proporciona los métodos necesarios para
la búsqueda de dispositivos y servicios

✔ cancelInquiry: detiene la búsqueda de dispostivos
✔ cancelServiceSearch: Detiene la búsqueda de servicios
✔ searchService: Implementa la búsqueda del servicio indicado
  por UUID
✔ startInquiry: Inicia la búsqueda de dispositivos
Bluecove (DiscoveryListener)



La interfaz DiscoveryListener incluye los diferentes métodos que
se ejecutan durante la búsqueda de dispositivos y servicios

✔   deviceDiscovered: Se ejecuta al encuentrar un dispositivo
✔   inquiryCompleted: Ejecutado al finalizar la búsqueda
✔   serviceDiscovered:Se ejecuta al encontrar un dispositivo
✔   serviceSearchCompleted: Ejecutado al finalizar la búsqueda
    de servicios
Bluecove (UUID)

La clase UUIDdefine los identificadores de cada uno de los
servicios de bluetooth
                              Servicios                 UUID
                                 SDP                   0x0001
                              RFCOMM                   0x0003
                                OBEX                   0x0008
                                HTTP                   0x000C
                               L2CAP                   0x0100
                                BNEP                   0x000F
                              Serial Port              0x1101
                ServiceDiscoveryServerServiceClassID   0x1000
                BrowseGroupDescriptorServiceClassID    0x1001
                         PublicBrowseGroup             0x1002
                      OBEX Object Push Profile         0x1105
                      OBEX File Transfer Profile       0x1106
                    Personal Area Networking User      0x1115
                        Network Access Point           0x1116
                           Group Network               0x1117
OBEX (ClientSession)



La interfaz ClientSession proporciona los métodos para peticiones
OBEX, estableciendo las cabeceras de conexión de OBEX.

✔   connect: Establece una conexión OBEX
✔   disconnect: Cierra la conexión OBEX actual
✔   createHeaderSet: Crea una cabecera OBEX para una conexión
✔   put: Realiza una operación de envío de comando
OBEX (HeaderSet)

La interfaz HeaderSet establece las cabeceras de la comunicación
a través de OBEX y recibe las respuestas del dispositivo remoto


✔ getResponseCode: Obtiene la respuesta del dispositivo
✔ setHeader: Configura parámetros de la cabecera
OBEX (Operation)




La clase Operation implementa los métodos para la manipulación
de operaciones de PUT y GET simples a través de OBEX

Hereda de la clase io los métodos de openInputStream y
openOutputStream
Estructura de un emisor bluetooth


Un sistema de marketing de proximidad esta compuesto por los siguientes
bloques:



                             Monitorización y logs

             Gestión de dispositivos
                                             Gestión de envíos
                    remotos

                                                 obexFTP
                           Bluez
Gestión de dispositivos remotos


                           inicio
Busqueda de dispositivos



               Busqueda de servicios                  inicio
                                                 si


                                       Baneado

                                                 no
                                                           Envío
Gestión de dispositivos remotos


                                                           registrar
Solicitud de envio                                          Banear


                                 Enviar archivo
                         si

              Aceptado                              registrar
                         no                          Banear
                                          si


                              Rechazado

                                          no
                                                  inicio
Monitorización y Logs



Este módulo constituye una base de datos donde se almacenan
los datos de envíos aceptados, rechazados ignorados.

Gracias a estos ficheros de logs se puede evitar que el sistema
envíe a un usuario que haya rechazado una nueva petición de
envío.

Se pueden establecer políticas de reenvío en función de
parámetros como tiempo desde el último envío rechazado.
nodo bluecove (demo)




Una imagen vale más que mil palabras
                 pero ocupa más memoria....
                                  proverbio freak

Weitere ähnliche Inhalte

Ähnlich wie Marketing de Proximidad y Open Source :-: Sesion 2

Ms config
Ms configMs config
Ms configDGS
 
Análisis de estructura y funcionamiento de las redes de ordenadores compromet...
Análisis de estructura y funcionamiento de las redes de ordenadores compromet...Análisis de estructura y funcionamiento de las redes de ordenadores compromet...
Análisis de estructura y funcionamiento de las redes de ordenadores compromet...Adrian Belmonte Martín
 
Unidad III: Seguridad de las Redes
Unidad III: Seguridad de las RedesUnidad III: Seguridad de las Redes
Unidad III: Seguridad de las RedesOswaldoPolanco3
 
Zabbix plataforma de monitoreo.
Zabbix   plataforma de monitoreo.Zabbix   plataforma de monitoreo.
Zabbix plataforma de monitoreo.FlechaVeloz1
 
Unidad iii seguridad de las redes
Unidad iii seguridad de las redesUnidad iii seguridad de las redes
Unidad iii seguridad de las redesMaraGarcia60
 
Redes del computador unidad 3
Redes del computador unidad 3Redes del computador unidad 3
Redes del computador unidad 3AngelSoto104
 
Taller sistemas distribuidos linux usando VMWare
Taller sistemas distribuidos linux usando VMWareTaller sistemas distribuidos linux usando VMWare
Taller sistemas distribuidos linux usando VMWareDamian Barrios Castillo
 
routerosbasicsv0-3espaol
 routerosbasicsv0-3espaol routerosbasicsv0-3espaol
routerosbasicsv0-3espaolpattala01
 
Despliegue de Imágenes en aulas de informática
Despliegue de Imágenes en aulas de informáticaDespliegue de Imágenes en aulas de informática
Despliegue de Imágenes en aulas de informáticassuserbd237f
 
1 corte de plataforma(javier mponfellis y jesus gonzalez)
1 corte de plataforma(javier mponfellis y jesus gonzalez)1 corte de plataforma(javier mponfellis y jesus gonzalez)
1 corte de plataforma(javier mponfellis y jesus gonzalez)JavierMponfellis
 
Seguridad En Bluetooth Y Windows Mobile
Seguridad En Bluetooth Y Windows MobileSeguridad En Bluetooth Y Windows Mobile
Seguridad En Bluetooth Y Windows MobileChema Alonso
 
Actividad vi tiposdeprotocolos
Actividad vi tiposdeprotocolosActividad vi tiposdeprotocolos
Actividad vi tiposdeprotocolosJofre Mamani
 

Ähnlich wie Marketing de Proximidad y Open Source :-: Sesion 2 (20)

Ms config
Ms configMs config
Ms config
 
Análisis de estructura y funcionamiento de las redes de ordenadores compromet...
Análisis de estructura y funcionamiento de las redes de ordenadores compromet...Análisis de estructura y funcionamiento de las redes de ordenadores compromet...
Análisis de estructura y funcionamiento de las redes de ordenadores compromet...
 
Unidad III: Seguridad de las Redes
Unidad III: Seguridad de las RedesUnidad III: Seguridad de las Redes
Unidad III: Seguridad de las Redes
 
Zabbix plataforma de monitoreo.
Zabbix   plataforma de monitoreo.Zabbix   plataforma de monitoreo.
Zabbix plataforma de monitoreo.
 
Unidad iii seguridad de las redes
Unidad iii seguridad de las redesUnidad iii seguridad de las redes
Unidad iii seguridad de las redes
 
Seguridad en Windows Mobile
Seguridad en Windows MobileSeguridad en Windows Mobile
Seguridad en Windows Mobile
 
Redes del computador unidad 3
Redes del computador unidad 3Redes del computador unidad 3
Redes del computador unidad 3
 
Taller sistemas distribuidos linux usando VMWare
Taller sistemas distribuidos linux usando VMWareTaller sistemas distribuidos linux usando VMWare
Taller sistemas distribuidos linux usando VMWare
 
routerosbasicsv0-3espaol
 routerosbasicsv0-3espaol routerosbasicsv0-3espaol
routerosbasicsv0-3espaol
 
Despliegue de Imágenes en aulas de informática
Despliegue de Imágenes en aulas de informáticaDespliegue de Imágenes en aulas de informática
Despliegue de Imágenes en aulas de informática
 
Nagios
NagiosNagios
Nagios
 
Firewalle Untangle
Firewalle UntangleFirewalle Untangle
Firewalle Untangle
 
Wifislax 3.1
Wifislax 3.1Wifislax 3.1
Wifislax 3.1
 
1 corte de plataforma(javier mponfellis y jesus gonzalez)
1 corte de plataforma(javier mponfellis y jesus gonzalez)1 corte de plataforma(javier mponfellis y jesus gonzalez)
1 corte de plataforma(javier mponfellis y jesus gonzalez)
 
Seguridad En Bluetooth Y Windows Mobile
Seguridad En Bluetooth Y Windows MobileSeguridad En Bluetooth Y Windows Mobile
Seguridad En Bluetooth Y Windows Mobile
 
Presentación ocs
Presentación ocsPresentación ocs
Presentación ocs
 
Accesos remotos
Accesos  remotosAccesos  remotos
Accesos remotos
 
Actividad vi tiposdeprotocolos
Actividad vi tiposdeprotocolosActividad vi tiposdeprotocolos
Actividad vi tiposdeprotocolos
 
Tiposdeprotocolos
TiposdeprotocolosTiposdeprotocolos
Tiposdeprotocolos
 
Redes ,,,,
Redes ,,,,Redes ,,,,
Redes ,,,,
 

Kürzlich hochgeladen

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 

Kürzlich hochgeladen (11)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

Marketing de Proximidad y Open Source :-: Sesion 2

  • 1. Marketing de proximidad y Herramientas OpenSource GCDS09 Roberto Dí az Ortega (info@rdiaz.es) Gema Socorro Rodrí guez (info@gemasr.com) Universidad de Las Palmas de Gran Canaria
  • 2. Sesión 2 Librería Bluez Funcionalidades Arquitectura Ejemplo de uso Librería Bluecove Estructura Ejemplo de uso Diversas demos sobre funcionamiento de BlueZ y bluecove
  • 3. ¿Qué es BlueZ? BlueZ proporciona soporte para el núcleo de Bluetooth y sus protocolos, además dispone de interesantes características como: ✔ Implementación completamente modular ✔ Sistema Multithread ✔ Soporte para multiples dispositivos Bluetooth ✔ Abstracción real del hardware ✔ Socket standard para todas las capas ✔ Soporte de seguridad a nivel de dispositivo y servicio
  • 4. ¿Qué es BlueZ? (II) Actualmente Bluez implementa los siguientes módulos: ✔ Bluetooth kernel subsystem core ✔ Capas L2CAP y SCO audio kernel ✔ RFCOMM, BNEP, CMTP y HIDP kernel ✔ HCI, UART, USB PCMCIA y virtual devices drivers ✔ Librerias generales y librerias SDP así como demonios ✔ Utilidades de configuración y testeo ✔ Decodificadores de protocolo y herramientas de análisis
  • 5. Arquitectura de BlueZ GNOME KDE Maemo OpenMoko D-Bus System Bus BlueZ Core + Servicios
  • 7. Arquitectura de BlueZ (III) La Pila de protocolos de BlueZ esta definida como:
  • 8. Empieza la acción.... La librería BlueZ esta disponible en la mayoría de las distribuciones linux actuales: La instalación en distribuciones tipo debian: apt-get install libbluetooth-dev bluez-utils La instalación en distribuciones tipo fedora: yum install bluez-devel Para envíos bluetooth también es necesario instalar ObexFTP
  • 9. Empieza la accion... (II) Una vez instalada la librería BlueZ en el equipo se tiene acceso directo desde la consola de comandos al dispositivo bluetooth: Inicio del servicio de bluetooth en el equipo: /etc/init.d/bluetooth start Una vez iniciado el servicio comenzamos a trabajar con el hcitool, la herramienta del controlador del interfaz.
  • 10. hcitool Una vez instalada la libreria BlueZ se tiene acceso directo al dispositivo bluetooth desde el equipo. El comando hcitool permite obtener y configurar gran parte de las características bluetooth: ✔ dev: Listado de dispositivos locales ✔ inq: Busqueda de dispositivos remotos ✔ scan: Busqueda de dispositivos remotos ✔ name <bdaddr>: Nombre de un dispositivo remoto ✔ info <bdaddr>: Información de un dispositvo remoto ✔ con: listado de conexiones abiertas ✔ rssi: nivel de potencia de señal recibida
  • 12. sdptool Una vez se conocen los dispositivos por medio del hcitool. sdptool permite obtener los servicios bluetooth asociados a cada dispositivo remote: ✔ search <bdaddr> service: búsqueda de servicios ✔ browser <bdaddr>: Listado de servicios remotos
  • 13. sdptool (demo) Teclado no encontrado… presione cualquier tecla para continuar… by Windows
  • 14. rfcomm El servicio rfcomm implementa un puerto serie vía bluetooth: ✔ bind <dev> <bdaddr> <canal>: Abre una conexión RFCOMM ✔ release <dev>: Cierra conexión abierta
  • 15. Comandos AT (hacking mode ON ...) Los comandos AT permiten acceder a las capacidades de comunicación de los dispositivos remotos a través de bluetooth: ✔ ATI: Devuelve el fabricante del dispositivo ✔ AT+CGMM: Devuelve el modelo del dispositivo ✔ AT+CGMR: Devuelve el firmware del dispositivo ✔ AT+CGSN: IMEI del terminal ✔ AT+CBC: Devuelve la carga de la batería ✔ ATD<numero>;: Inicia una llamada de teléfono
  • 16. rfcomm y Comandos AT (demo)
  • 17. obexftp y el marketing Obexftp es una aplicación que permite el envío de archivos a través del protolo OBEX: obexftp -b <dbaddr> -B <canal Obex> -U -p <fichero>
  • 19. Integrando todo .... (demo) Llegados a este punto se disponen de todas las herramientas necesarias para llevar a cabo la integración y creación del primer emisor bluetooth
  • 20. Bluecove Bluecove es una libreria java que implementa la especificación JSR-82 multiplataforma. ✔ La librería soporta los siguientes perfiles bluetooth: ✔ SDAP: Perfil de descubrimiento de servicios ✔ RFCOMM: Emulación del puerto serie ✔ L2CAP: Enlace lógico y protocolo de adaptación ✔ OBEX:Protocolo de intercambio de archivos
  • 22. Bluecove (LocalDevice) La clase LocalDevice define las funciones básicas de bluetooth sobre el dispositivo local ✔ getBluetoothAdress: obtiene la dirección local ✔ getDeviceClass: Obtiene la clase del dispositivo local ✔ getDiscoverable: Permite saber si el dispositivo es descubrible ✔ getDiscoveryAgent: Obtiene el discovery agent del dispositivo ✔ getFriendlyName: Obtiene el nombre del dispositivo ✔ getLocalDevice: Obtiene el control del dispositivo local ✔ setDiscoverable: Configuración descubrible
  • 23. Bluecove (RemoteDevice) La clase RemoteDevice define las funciones básicas de bluetooth sobre el dispositivo remoto ✔ getBluetoothAdress: obtiene la dirección remoto ✔ getFriendlyName: Obtiene el nombre del dispositivo ✔ getRemoteDevice: Control del dispositivo remoto bajo un protocolo determinado por conn
  • 24. Bluecove (DiscoveryAgent) La clase DiscoveryAgent proporciona los métodos necesarios para la búsqueda de dispositivos y servicios ✔ cancelInquiry: detiene la búsqueda de dispostivos ✔ cancelServiceSearch: Detiene la búsqueda de servicios ✔ searchService: Implementa la búsqueda del servicio indicado por UUID ✔ startInquiry: Inicia la búsqueda de dispositivos
  • 25. Bluecove (DiscoveryListener) La interfaz DiscoveryListener incluye los diferentes métodos que se ejecutan durante la búsqueda de dispositivos y servicios ✔ deviceDiscovered: Se ejecuta al encuentrar un dispositivo ✔ inquiryCompleted: Ejecutado al finalizar la búsqueda ✔ serviceDiscovered:Se ejecuta al encontrar un dispositivo ✔ serviceSearchCompleted: Ejecutado al finalizar la búsqueda de servicios
  • 26. Bluecove (UUID) La clase UUIDdefine los identificadores de cada uno de los servicios de bluetooth Servicios UUID SDP 0x0001 RFCOMM 0x0003 OBEX 0x0008 HTTP 0x000C L2CAP 0x0100 BNEP 0x000F Serial Port 0x1101 ServiceDiscoveryServerServiceClassID 0x1000 BrowseGroupDescriptorServiceClassID 0x1001 PublicBrowseGroup 0x1002 OBEX Object Push Profile 0x1105 OBEX File Transfer Profile 0x1106 Personal Area Networking User 0x1115 Network Access Point 0x1116 Group Network 0x1117
  • 27. OBEX (ClientSession) La interfaz ClientSession proporciona los métodos para peticiones OBEX, estableciendo las cabeceras de conexión de OBEX. ✔ connect: Establece una conexión OBEX ✔ disconnect: Cierra la conexión OBEX actual ✔ createHeaderSet: Crea una cabecera OBEX para una conexión ✔ put: Realiza una operación de envío de comando
  • 28. OBEX (HeaderSet) La interfaz HeaderSet establece las cabeceras de la comunicación a través de OBEX y recibe las respuestas del dispositivo remoto ✔ getResponseCode: Obtiene la respuesta del dispositivo ✔ setHeader: Configura parámetros de la cabecera
  • 29. OBEX (Operation) La clase Operation implementa los métodos para la manipulación de operaciones de PUT y GET simples a través de OBEX Hereda de la clase io los métodos de openInputStream y openOutputStream
  • 30. Estructura de un emisor bluetooth Un sistema de marketing de proximidad esta compuesto por los siguientes bloques: Monitorización y logs Gestión de dispositivos Gestión de envíos remotos obexFTP Bluez
  • 31. Gestión de dispositivos remotos inicio Busqueda de dispositivos Busqueda de servicios inicio si Baneado no Envío
  • 32. Gestión de dispositivos remotos registrar Solicitud de envio Banear Enviar archivo si Aceptado registrar no Banear si Rechazado no inicio
  • 33. Monitorización y Logs Este módulo constituye una base de datos donde se almacenan los datos de envíos aceptados, rechazados ignorados. Gracias a estos ficheros de logs se puede evitar que el sistema envíe a un usuario que haya rechazado una nueva petición de envío. Se pueden establecer políticas de reenvío en función de parámetros como tiempo desde el último envío rechazado.
  • 34. nodo bluecove (demo) Una imagen vale más que mil palabras pero ocupa más memoria.... proverbio freak