Perfiles Bluetooth
Los Perfiles de Bluetooth
El SIG Bluetooth ha identificado varios modelos de uso del
estándar de comunicaciones Bluetooth, cada uno de los cuales está
acompañado por un perfil. Los perfiles definen
los protocolos y características que soportan un modelo de uso
particular. Esto garantiza la interoperabilidad, ya que si dos
dispositivos de distintos fabricantes cumplen con la misma
especificación del perfil Bluetooth, podemos esperar que interactúen
correctamente cuando se utilicen para un uso particular.
Un perfil define los mensajes específicos y procedimientos usados para
implementar una característica. Algunas características son
obligatorias y algunas pueden ser opcionales.
Por un lado, el SIG Bluetooth define cuatro perfiles genéricos (GAP,
SPP, SDAP y GOEP), sobre los que se definen los diferentes perfiles
específicos para modelos de uso, descritos en la especificación
Bluetooth 1.0.
- Perfil de Telefonía Inalámbrica (CTP, Cordless Telephony Profile)
- Perfil de Intercomunicación (IP, Intercom Profile)
- Perfil de Puerto Serie (SP, Serial Port Profile)
- Perfil de Acceso Telefónico a Redes (DUN, Dial-Up Networking)
- Perfil de Auriculares (HS, HeadSet Profile)
- Perfil de Fax (FP, Fax Profile)
- Perfil de Acceso a Red (LAP, LAN Access Profile)
- Perfil de Transferencia de Archivos (FTP, File Transfer Profile)
- Perfil de Carga de Objetos (OPUSH u OPP, Object Push Profile)
- Perfil de Sincronización (Sync, Synchronization Profile)
Adicionalmente, los siguientes perfiles han sido recientemente aprobados por el SIG o están en fase de desarrollo:
- ESDP, Extended Service Discovery Profile
- A2DP, Advanced Audio Distribution Profile
- AVRCP, Audio Video Remote Control Profile
- BIP, Basic Imaging Profile
- BPP, Basic Printing Profile
- CIP, Common ISDN Access Profile
- GAVDP, Generic Audio Video Distribution Profile
- HFR, Hands-Free Profile
- HCRP, Hardcopy Cable Replacement Profile
- HID, Human Interface Device Profile
- PAN, Personal Area Networking Profile
- SAP, SIM Access Profile
Perfiles genéricos
Se definen cuatro perfiles genéricos que contienen la
especificación de los perfiles específicos: el Perfil de Acceso
Genérico (GAP, Generis Access Profile), el Perfil de Puerto Serie (SPP,
Serial Port Profile), el Perfil de Aplicación de Descubrimiento de
Servicios (SDAP, Service Discovery Application Profile) y el Perfil
Genérico de Intercambio de Objetos (GOEP, Generic Object Exchange
Profile).
Perfil de Acceso Genérico
El Perfil de Acceso Genérico (GAP, Generis Access Profile)
define los procedimientos generales para descubrir dispositivos
Bluetooth, así como los procedimientos de gestión de enlace para
establecer una conexión entre dos dispositivos Bluetooth.
El Perfil GAP debe implementarse en cualquier dispositivo Bluetoothpara
asegurar la interoperabilidad básica y la coexistencia con otros
dispositivos, independientemente del tipo de aplicación que soporten.
Los dispositivos que además cumplan otro perfil Bluetooth pueden
emplear adaptaciones de los procedimientos genéricos, tal como se
especifiquen en ese perfil. Sin embargo, deben seguir siendo
compatibles con el perfil GAP en el nivel de procedimientos genéricos.
Perfil de Puerto Serie
Cuando la tecnología inalámbrica Bluetooth se utiliza para
sustituir al cable, se emplea el Perfil de Puerto Serie (SPP, Serial
Port Profile) para el canal resultante orientado a conexión. Este
perfil está construido sobre el Perfil de Acceso Genérico y define cómo
deben configurarse los dispositivos Bluetooth para emular una conexión
a través de un cable serie utilizando RFCOMM, un protocolo de
transporte sencillo que emula los puertos serie RS-232 entre
dispositivos homólogos.
Las aplicaciones ejecutadas en los dispositivos son normalmente
aplicaciones heredadas que esperan que la comunicación tenga lugar a
través de un cable serie. Cualquier aplicación heredada puede ser
ejecutada sobre cualquiera de los dos dispositivos utilizando el puerto
serie virtual como si los conectara un cable físico, con señalización
de control RS-232; pudiendo necesitar la ayuda, en algunos casos, de
una aplicación auxiliar que utilice la especificación Bluetooth a ambos
lados del enlace.
Perfil de Aplicación de Descubrimiento de Servicios
El Perfil de Aplicación de Descubrimiento de Servicios (SDAP,
Service Discovery Application Profile) describe las características y
procedimientos utilizados para descubrir servicios registrados en otros
dispositivos Bluetooth y obtener información acerca de esos servicios.
El Perfil SDAP utiliza el Protocolo de Descubrimiento de Servicios SDP,
incluido en la pila de protocolos Bluetooth, para localizar los
servicios disponibles en dispositivos situados dentro del radio de
acción de un dispositivo Bluetooth. El procedimiento de descubrimiento
de servicios en dispositivos próximos no es automático, se requiere que
el usuario invoque específicamente al protocolo SDP mediante la
Aplicación de Descubrimiento de Servicios. Una vez que se crea el
enlace con un dispositivo determinado, se pueden localizar los
servicios que ofrece y estos pueden ser seleccionados a través del
interfaz de usuario según el tipo de aplicación que se desee ejecutar.
El protocolo SDP permite realizar dos tipos de operaciones relacionadas
con el descubrimiento de servicios en dispositivos Bluetooth:
- Búsqueda de servicios (Service Searching): permite localizar dispositivos cercanos que ofrezcan un servicio específico.
- Enumeración de servicios (Service Browsing):
permite conocer los servicios ofrecidos por un determinado dispositivo.
Perfil Genérico de Intercambio de Objetos
El Perfil Genérico de Intercambio de Objetos (GOEP, Generic
Object Exchange Profile) define cómo deben soportar los dispositivos
Bluetooth los modelos de uso de intercambio de objetos. Incluye tres
perfiles asociados a modelos de uso específicos basados en el protocolo
OBEX (OBject EXchange): el Perfil de Transferencia de Archivos (OBEX
File Transfer), el Perfil de carga de objetos (OBEX Object Push) y el
Perfil de Sincronización.
Como se describirá más adelante, OBEX permite escenarios de conexión
rápida: transferencia-desconexión (OBEX Object Push) y también permite
el establecimiento de sesiones en las que las transferencias tienen
lugar durante un período de tiempo, manteniendo la conexión incluso
cuando esté inactiva (OBEX File Transfer).
El uso principal de OBEX se realiza en aplicaciones de carga y descarga
de archivos. Se basa en el modelo cliente/servidor. Bajo el Perfil
Genérico de Intercambio de Objetos, un cliente carga o envía objetos de
datos en un servidor mediante la operación PUT del protocolo OBEX; o
bien descarga o recibe objetos de datos desde un servidor mediante la
operación GET del protocolo OBEX.
Perfiles específicos de modelos de uso
Se han identificado cuatro perfiles genéricos (GAP, SPP, SDAP
y GOEP), sobre los que se definen los diferentes perfiles específicos
para modelos de uso. Estos perfiles Bluetooth para modelos de uso son
múltiples y variados, y se implementan de manera opcional e
independiente por cada fabricante y tipo de dispositivo.

La especificación Bluetooth 1.0 define los siguientes perfiles:
- Perfil de Telefonía Inalámbrica (CTP, Cordless Telephony Profile)
- Perfil de Intercomunicación (IP, Intercom Profile)
- Perfil de Puerto Serie (SP, Serial Port Profile)
- Perfil de Acceso Telefónico a Redes (DUN, Dial-Up Networking)
- Perfil de Auriculares (HS, HeadSet Profile)
- Perfil de Fax (FP, Fax Profile)
- Perfil de Acceso a Red (LAP, LAN Access Profile)
- Perfil de Transferencia de Archivos (FTP, File Transfer Profile)
- Perfil de Carga de Objetos (OPUSH u OPP, Object Push Profile)
- Perfil de Sincronización (Sync, Synchronization Profile)
Adicionalmente, los siguientes perfiles han sido recientemente aprobados por el SIG o están en fase de desarrollo:
- ESDP, Extended Service Discovery Profile
- A2DP, Advanced Audio Distribution Profile
- AVRCP, Audio Video Remote Control Profile
- BIP, Basic Imaging Profile
- BPP, Basic Printing Profile
- CIP, Common ISDN Access Profile
- GAVDP, Generic Audio Video Distribution Profile
- HFR, Hands-Free Profile
- HCRP, Hardcopy Cable Replacement Profile
- HID, Human Interface Device Profile
- PAN, Personal Area Networking Profile
- SAP, SIM Access Profile
Perfil de Acceso Telefónico a Redes
El Perfil de Acceso Telefónico a Redes (DUN, Dial-Up
Networking) define los protocolos y procedimientos utilizados por
dispositivos tales como módems y teléfonos móviles para implementar el
modelo de uso denominado puente hacia Internet. El escenario posible
más habitual para este modelo es el uso del teléfono móvil como módem
inalámbrico para conectar un PC a un servicio de acceso telefónico a
Internet.
Perfil de Auriculares
El Perfil de Auriculares (HS, HeadSet Profile) define los
protocolos y procedimientos para el modelo de uso que permite utilizar
un dispositivo auricular de última generación como interfaz de entrada
y salida de audio de otro dispositivo, generalmente un teléfono móvil o
un PC, con el propósito de incrementar la libertad de movimiento del
usuario al mismo tiempo que se mantiene la confidencialidad de la
conversación.
Se definen dos roles para los dispositivos que implementan el Perfil de
Auriculares: pasarela de audio y auricular. El dispositivo pasarela de
audio es aquel que inicia el procedimiento de conexión, mientras que el
dispositivo auricular se define como el que actúa como mecanismo de
entrada y salida de audio remotas para la pasarela de audio.
El modelo de uso del Perfil de Auriculares permite multitud de
configuraciones y define tres escenarios de uso habituales:
- Manos Libres Auriculares (Hands-Free HeadSet) conectado a
un teléfono móvil: Permite al usuario mantener conversaciones
telefónicas sin necesidad de acercar el terminal al oído. Su empleo
puede extenderse a comunicaciones con PCs, para aplicaciones de VoIP
(Voz sobre IP) como Skype.

- Manos Libres de automóvil (Hands-Free Car Kit) conectado a
un teléfono móvil: Permite al usuario mantener conversaciones
telefónicas en el interior de un vehículo sin necesidad de apartar las
manos del volante para sostener el teléfono móvil.

- Pasarela de audio entre dos dispositivos Bluetooth
cualesquiera: Permite a un usuario configurar dos equipos Bluetooth,
que no tienen porqué tratarse de auriculares, sino simples PCs o PDAs,
y establecer una pasarela de audio entre los dos, de forma que el audio
que reproduce el software de un dispositivo, se transmite al otro
dispositivo a través del enlace SCO (Synchronous Connection Oriented) y
puede ser proyectado por los altavoces del segundo. Así mismo, el audio
recogido por el micrófono de un dispositivo se transmite al otro
dispositivo, donde puede ser grabado en un archivo de sonido.

En el caso de los dos primeros escenarios, el dispositivo
manos libres debe ser capaz de enviar comandos AT al teléfono móvil y
recibir códigos de respuesta. Esta capacidad permite al manos libres
responder llamadas entrantes y terminarlas sin que el usuario tenga que
manipular físicamente el teléfono.
El Perfil de Auriculares requiere que los dos dispositivos involucrados
soporten enlaces SCO. Por ello, solamente se admite una conexión de
audio en cada momento entre el auricular y la pasarela de audio. La
pasarela de audio controla el establecimiento y la liberación del
enlace SCO. El auricular conecta y desconecta directamente los flujos
internos de audio durante el establecimiento y liberación del enlace
SCO. Una vez que el enlace está establecido, existe una transferencia
válida de audio sobre el enlace SCO en ambas direcciones.
Perfil de Fax
El Perfil de Fax (FP, Fax Profile) define los protocolos y
procedimientos utilizados por aquellos dispositivos que implementen la
parte de fax del modelo de uso llamado punto de acceso a datos en redes
WAN. Un teléfono móvil o un módem que utilice tecnología Bluetooth
puede ser utilizado por un PC como dispositivo fax inalámbrico para
enviar y recibir mensajes de fax.
Perfil de Acceso a Red
El Perfil de Acceso a Red (LAP, LAN Access Profile) define
cómo los dispositivos Bluetooth pueden acceder a los servicios de una
LAN (Local Area Network) utilizando el protocolo PPP sobre RFCOMM, y
cómo puede utilizarse el mismo protocolo PPP para conectar en red dos
dispositivos utilizando Bluetooth. En este modelo de uso, varios
terminales de datos utilizan un punto de acceso a la red (LAP, LAN
Access Point) como conexión inalámbrica a una red de área local, de
forma que operan como si estuviesen conectados a la red directamente.
PPP (Point to Point Protocol) es un estándar de la IETF utilizado
ampliamente como medio de acceso a redes. Aunque PPP es capaz de
soportar varios protocolos de red (IP, IPX, etc.), el Perfil de Acceso
a Red no obliga al uso de ningún protocolo en particular. El Perfil de
Acceso a Red simplemente define cómo se soporta PPP para proporcionar
acceso a la LAN a uno o múltiples dispositivos Bluetooth y para
establecer una comunicación PC a PC utilizando conexiones PPP sobre una
emulación de cable serie a través de RFCOMM.
Perfil de Transferencia de Archivos
El Perfil de Transferencia de Archivos (FTP, File Transfer
Profile) soporta el modelo de uso de transferencia de archivos a través
del protocolo OBEX File Transfer, el cual ofrece la capacidad de
transferir objetos de datos (archivos y carpetas) de un dispositivo
Bluetooth a otro, así como navegar por los contenidos de las carpetas
del dispositivo remoto.
Los dispositivos que implementan el Perfil de Transferencia de Archivos
pueden actuar como cliente o como servidor. El dispositivo cliente es
aquel que inicia la operación de envío o extracción de objetos al y
desde el dispositivo servidor. El servidor es el dispositivo Bluetooth
remoto que proporciona un servidor de intercambio de objetos a través
de los comandos OBEX. Los servidores pueden imponer políticas de
restricción de permisos de lectura y escritura, para evitar la creación
y borrado de carpetas y archivos.
Se definen las siguientes operaciones en el Perfil de Transferencia de
Archivos:
- Navegar por la jerarquía de carpetas.
- Listar el contenido de una carpeta.
- Extraer objetos, mediante el comando GET.
- Enviar objetos, mediante el comando PUT.
- Borrar objetos.
A continuación se muestra un ejemplo práctico de una
aplicación basada en el protocolo OBEX File Transfer, Obexftp.
Obexftp
Obexftp es
una herramienta open source basada en el proyecto OpenObex
(http://openobex.triq.net/),
que pretende implementar el protocolo OBEX en plataformas Linux, para
lo cual utiliza la pila de protocolos BlueZ. Obexftp
permite la transferencia de archivos hacia o desde cualquier
dispositivo que soporte el protocolo OBEX File Transfer.
En la siguiente captura, se muestra Obexftp
en acción:

El procedimiento de transferencia de archivos con Obexftp
transcurre de la siguiente forma. En primer lugar, se localiza el
dispositivo Bluetooth al cual se quiere transferir el archivo con ayuda
del comando hcitool scan, luego se comprueba que soporta el Perfil de
Transferencia de Archivos (FTP) con ayuda del comando sdptool search
FTP y finalmente se envía el archivo a través de la herramienta Obexftp.
En el ejemplo práctico de transferencia de archivos a través de la
aplicación Obexftp,
basada en el protocolo OBEX, el dispositivo servidor se trata de un
teléfono móvil Nokia 6600 basado en Symbian OS. Al recibir el archivo a
través del protocolo OBEX, el teléfono lo almacena en la bandeja de
entrada con formato de mensaje SMS y notifica al usuario de la
recepción del mismo.
Perfil de Carga de Objetos
El Perfil de Carga de Objetos (OPUSH u OPP, Object Push
Profile) define los requisitos de aplicación para implementar el modelo
de uso de carga de objetos a través del protocolo OBEX Object Push, el
cual ofrece la capacidad de cargar y descargar objetos de datos de un
dispositivo Bluetooth a otro.
Inicialmente, el Perfil de Carga de Objetos se utilizaba para cargar y
descargar objetos tales como citas en formato vCalendar o tarjetas de
visita en formato vCard de otro dispositivo, lo que permitía el
intercambio de tarjetas de visita entre dos dispositivos Bluetooth.
Actualmente, el perfil conserva esta funcionalidad, aunque también se
utiliza para transferencia rápida de archivos.
A continuación se muestran dos ejemplos prácticos de aplicaciones
basadas en el protocolo OBEX Object Push, ObexPush
y Ussp-Push.
ObexPush
ObexPush es
una utilidad incluida en el paquete openobex-apps (dependiente de cada
distribución Linux) que contiene aplicaciones basadas en el proyecto OpenObex
(http://openobex.triq.net/),
que implementa el protocolo OBEX en Linux a través de la pila de
protocolos BlueZ. ObexPush
permite la carga y descarga de archivos hacia o desde cualquier
dispositivo que implemente el protocolo OBEX Object Push.

El procedimiento de transferencia de archivos con ObexPush
transcurre de la siguiente forma. En primer lugar, se localiza el
dispositivo Bluetooth al cual se quiere transferir el archivo con ayuda
del comando hcitool scan,
luego se comprueba que soporta el Perfil de Carga de Objetos con ayuda
del comando sdptool search OPUSH
y finalmente se envía el archivo con la herramienta ObexPush.
Nótese que, en este caso, es necesario especificar el parámetro 9 que
corresponde al canal que emplea OBEX Object Push en ese dispositivo.
Ussp-Push
Ussp-Push es
otra herramienta basada en la pila de protocolos BlueZ para Linux.
Permite únicamente la carga de objetos en otros dispositivos Bluetooth.
En las siguientes capturas, se muestra Ussp-Push
en acción.
En primer lugar, requiere establecer una conexión RFCOMM explícita con
el dispositivo Bluetooth al cual se quiere transferir el archivo.

A continuación, desde otra ventana de shell lanzamos Ussp-Push.

En los dos casos de ejemplo práctico de transferencia de archivos a
través de aplicaciones basadas en el protocolo OBEX, el dispositivo
servidor se trata de un teléfono móvil Nokia 6600 basado en Symbian OS.
Al recibir el archivo a través del protocolo OBEX, el teléfono lo
almacena en la bandeja de entrada con formato de mensaje SMS y notifica
al usuario de la recepción del mismo.
Perfil de Sincronización
El Perfil de Sincronización define los requisitos para los
protocolos y procedimientos utilizados por las aplicaciones que
proporcionan el modelo de uso de sincronización. El modelo proporciona
sincronización dispositivo a dispositivo de programas de gestión de la
información personal (PIM, Personal Information Management). La
información que manejan estos programas consiste normalmente en una
agenda de teléfonos de contactos, calendario, mensajes y notas.
Los dispositivos que implementan el Perfil de Sincronización pueden
actuar como cliente y servidor.
Las unidades activas en el modelo de uso de sincronización deben
soportar tres funciones: sincronización, comando de sincronización y
sincronización automática.
- La sincronización en Bluetooth debe soportar al menos una de las siguientes clases de aplicación:
- Sincronización de agendas telefónicas
- Sincronización de calendarios
- Sincronización de mensajes
- Sincronización de nota
Para conseguir la interoperabilidad a nivel de aplicación, se definen formatos de contenido específicos para cada unidad activa. Estos formatos de contenido son los siguientes: vCard, vCalendar, vMessage y vNote.
- La función de comando de sincronización permite a un
dispositivo cliente trabajar como un servidor y recibir un comando de
sincronización desde otro dispositivo cliente.
- La función conocida como sincronización automática permite a un dispositivo cliente iniciar la sincronización cuando el dispositivo servidor entra dentro de su rango de cobertura. En el nivel de banda base, esto significa que el cliente realiza una búsqueda del servidor a intervalos regulares, y cuando detecta que éste ha entrado en su rango de cobertura comienza la sincronización.
