# USSD

El USSD (acrónimo del inglés Unstructured Supplementary Service Data, "Servicio Suplementario de Datos no Estructurados"), a veces llamado Códigos rápidos o Códigos de función, es un protocolo para el envío de datos a través de móviles GSM, similar al SMS. El USSD puede ser usado para la navegación WAP, servicio de devolución de llamada de prepago, servicios de dinero móvil, servicios de contenidos basados en la localización, servicios de información basados en menús interactivos, y como parte de la configuración del teléfono en la red del Operador de telefonía móvil.

## Diferencias respecto a SMS

Los mensajes USSD tienen hasta 182 caracteres alfanuméricos de longitud. Aunque el mecanismo de funcionamiento es muy similar al del Servicio de mensajes cortos (SMS), los mensajes USSD crean una conexión en tiempo real durante una sesión USSD. La conexión permanece abierta, permitiendo un intercambio bidireccional de una secuencia de datos. Esto hace al USSD más sensible que los servicios que utilizan SMS ya que no dispone de un Centro de Mensajes (SMSC) intermedio (es decir, que los mensajes enviados no disponen de capacidad Almacenamiento y reenvío, por lo que si no pueden ser entregados al instante, se descartan). Por esta misma razón, a diferencia de SMS, USSD no está diseñado para intercambio de mensajes entre teléfono y teléfono. Al saltarse el paso intermedio de almacenaje, los tiempos de respuesta interactiva de servicios basados en USSD son generalmente más rápidos que los utilizados para SMS, por lo que suele emplearse para servicios de telefonía en tiempo real, y servicios de mensajería instantánea.
Usando una analogía con protocolos de comunicaciones en Internet, USSD sería como el protocolo telnet (para que exista la comunicación, emisor y destino han de estar conectados a la red al mismo tiempo), mientras que el SMS sería similar al correo electrónico (emisor y receptor usan un equipo intermedio que almacena los datos, de modo que no necesitan estar conectados a la red al mismo tiempo; en el caso del correo electrónico se trataría del servidor de correo, mientras que en el del SMS se trata del SMSC).
Tras introducir el código USSD en el terminal GSM, la respuesta del servicio suele llegar en pocos segundos.

## Especificaciones técnicas

Más del 99% de los teléfonos GSM tienen capacidad USSD. Sin embargo, algunos modelos específicos pueden tener limitaciones.
USSD se asocia generalmente con servicios de mensajería instantánea o en tiempo real. No tiene capacidad de almacenamiento y reenvío, como es típico de otros protocolos de mensajes cortos como SMS al no disponer de un SMSC en la ruta de procesamiento.

### Formato

Un mensaje típico USSD comienza con un asterisco (*) seguido de dígitos que comprenden órdenes o datos. Se pueden separar Grupos de dígitos por asteriscos adicionales. El mensaje termina con un signo de número (#).
* Ejemplo códigos USSD
* *101#
* *139*1*1234567890#

### Etapas USSD

* Iniciado por el móvil
    La etapa de USSD conocida como Fase 1, definida en el estándar GSM 02.90, solo soporta operaciones de comunicación iniciadas por el teléfono, llamadas operaciones pull en la red principal, el mensaje se entrega a través del protocolo de señalización MAP.
   * USSD/ PULL o USSD/ P2P
   * Cuando el usuario marca un código, por ejemplo, *123# desde un teléfono móvil GSM.
* Iniciado por la red
    La etapa de USSD conocida como Fase 2, definida en el estándar GSM 03.90, soporta operaciones de comunicación iniciadas tanto por el teléfono como por la red, llamadas operaciones pull y push. Después de introducir un código USSD en un teléfono GSM (pull), la respuesta del operador de GSM se muestra dentro de unos pocos segundos (push).
   * USSD/ PUSH o USSD/A2P
   * Cuando el usuario recibe un mensajes Push de la red; utilizado principalmente para servicios de promoción y notificaciones.

## Aplicaciones

El USSD se suele utilizar como una forma de llamar a otros servicios independientes de recepción de llamadas, que al estar disponibles permanentemente no necesitan el uso de un SMSC intermedio, disminuyendo así los costes de envío y operación. Ese es el caso por ejemplo de los servicios de devolución de llamadas (usados frecuentemente en programas de ahorro en roaming), o de noticias interactivas (como datos bursátiles o noticias deportivas).
Cada operador puede establecer uno o más servicios propios a través de USSD. Por ejemplo, se suele emplear para realizar peticiones de saldo disponible, estado de la cuenta e información similar en los servicios GSM de prepago.
USSD es la base de algunos métodos de pago como SharEpay en el sur de África, Mobipay en España, Paysa en la India, tpago en República Dominicana y Mpay en Polonia. Se suele emplear también en sistemas de mensajería automatizados, venta de politonos, o consulta de estado de líneas de autobús (como el servicio de tiempo de espera ofrecido por TMB en Barcelona).