El servicio de mensajes cortos se realiza mediante el uso de la parte de aplicación móvil (MAP) del protocolo SS7 , y los elementos del protocolo de mensajes cortos se transportan a través de la red como campos dentro de los mensajes MAP. [1] Estos mensajes MAP pueden transportarse mediante señalización basada en TDM "tradicional" o mediante IP utilizando SIGTRAN y una capa de adaptación adecuada.
El protocolo de mensajes cortos en sí está definido por 3GPP TS 23.040 para el servicio de mensajes cortos punto a punto (SMS-PP) , [2] y 3GPP TS 23.041 para el servicio de transmisión celular (CBS) . [3]
Se definen cuatro procedimientos MAP para el control del Servicio de Mensajes Cortos: [1]
El diagrama de la derecha muestra un flujo de llamada simplificado para el envío exitoso de un mensaje corto (SM) originado desde un dispositivo móvil. [1]
Cuando el abonado envía un mensaje corto, el teléfono envía el mensaje de texto a través de la interfaz aérea al Centro de conmutación móvil (MSC) / Nodo de soporte de GPRS (SGSN) . Junto con el texto real del mensaje corto, se incluyen la dirección de destino del SM y la dirección del centro de servicio de mensajes cortos (SMSC) , esta última tomada de la configuración del teléfono almacenada en la tarjeta SIM. [4]
Independientemente de la tecnología de interfaz aérea, el VMSC/SGSN invoca el paquete de servicio MAP MAP_MO_FORWARD_SHORT_MESSAGE para enviar el texto al MSC de interfuncionamiento del Centro de servicio cuya dirección fue proporcionada por el teléfono. Este servicio envía la operación MAP mo-ForwardSM [Nota 1] al SMSC identificado en el Envío SM desde el teléfono, incrustado dentro de un mensaje de Parte de aplicación de capacidades de transacción (TCAP) y transportado a través de la red central utilizando la Parte de control de conexión de señalización (SCCP). [1]
El MSC de interfuncionamiento del SMSC, al recibir el mensaje MAP mo-ForwardSM, pasa la Unidad de datos del protocolo de aplicación (APDU) SMS-PP [2] que contiene el mensaje de texto al Centro de servicio (SC) real del SMSC para su almacenamiento y posterior "reenvío" (entrega) a la dirección de destino, y el SC devuelve un acuse de recibo indicando el éxito o el fracaso de la operación. Al recibir este estado de envío del Centro de servicio, el MSC de interfuncionamiento enviará una indicación apropiada al VMSC/SGSN del abonado remitente. El estado de envío del mensaje se reenvía entonces, a través de la interfaz aérea, al teléfono del abonado. [4] [Nota 2]
La figura de la derecha muestra un flujo de llamadas para la entrega de mensajes cortos terminados en un dispositivo móvil. [1] Para simplificar, se han omitido algunas de las interacciones entre el VMSC y el VLR, y entre el VMSC y el teléfono, y solo se muestra el caso en el que no se utiliza el enrutamiento de SMS a domicilio .
Cuando el SMSC determina que necesita intentar entregar un mensaje corto a su destino, enviará la APDU SMS-PP que contiene el mensaje de texto, la "B-Party" (número de teléfono de destino) y otros detalles al componente lógico Gateway MSC (GMSC) en el SMSC. [2] El GMSC, al recibir este mensaje corto, necesita descubrir la ubicación de la B-Party para poder entregar correctamente el texto al destinatario (el término Gateway MSC, en este contexto, indica un MSC que está obteniendo información de enrutamiento del Registro de ubicación local (HLR) ). Para hacer esto, el GMSC invoca el paquete de servicio MAP MAP_SEND_ROUTING_INFO_FOR_SM, que envía un mensaje MAP sendRoutingInfoForSM (SRI-for-SM) al HLR del número de destino, solicitando su ubicación actual. Este mensaje SRI para SM puede enviarse a un HLR en la misma red que el SMSC, o a través de una interconexión a un HLR en una PLMN extranjera , dependiendo de a qué red pertenezca el suscriptor de destino.
El HLR realiza una búsqueda en la base de datos para recuperar la ubicación actual de la B-Party y la devuelve en un mensaje de confirmación a la entidad GMSC del SMSC. La ubicación actual puede ser la dirección MSC en la que se encuentra actualmente el suscriptor, la dirección SGSN o ambas. El HLR también puede devolver un error si considera que el destino no está disponible para mensajes cortos; consulte la sección Entrega de mensajes cortos fallida a continuación.
Una vez obtenida la información de enrutamiento del HLR, el GMSC intentará entregar el mensaje corto a su destinatario. Esto se hace invocando el servicio MAP_MT_FORWARD_SHORT_MESSAGE, que envía un mensaje MAP mt-ForwardSM [Nota 3] a la dirección devuelta por el HLR, independientemente de si se trata de un MSC (entrega de SMS con conmutación de circuitos) o un SGSN (entrega de SMS con conmutación de paquetes).
El VMSC solicitará la información necesaria para entregar el mensaje corto a su destinatario enviando un mensaje Send_Info_for_MT_SMS al VLR. A continuación, el VLR iniciará una solicitud de búsqueda de abonado para el número de ISDN de abonado móvil (MSISDN) del abonado de destino y devolverá el resultado al VMSC. Dado que en una implementación típica el VLR se ubica junto con el MSC, este flujo de mensajes suele ser interno a la plataforma. [Nota 4] Si la búsqueda de abonado falla, el VLR indicará la causa del fallo al VMSC, que abortará el procedimiento de entrega del mensaje corto y devolverá el fallo al SMSC (consulte la sección Entrega fallida de mensajes cortos a continuación). Si la búsqueda del teléfono móvil se realizó correctamente, el VMSC enviará un mensaje al SMSC indicando que la entrega se realizó correctamente. El componente GMSC del SMSC pasa el resultado del intento de entrega al centro de servicio. En caso de entrega exitosa, el mensaje de texto entregado será eliminado del Motor de Almacenamiento y Reenvío (SFE) y, si se solicita, se enviará un informe de entrega al originador del texto. [2] Si la entrega falló, el SMSC invoca un procedimiento de reintento para realizar periódicamente más intentos de entrega; además, puede registrarse en el HLR para recibir una notificación cuando la Parte B esté disponible para la entrega de mensajes cortos en el futuro (consulte la sección Entrega fallida de mensajes cortos a continuación).
Cuando el VMSC/SGSN indica un fallo en la entrega de un mensaje corto, el SMSC puede enviar un mensaje al HLR, utilizando el procedimiento MAP_REPORT_SM_DELIVERY_STATUS, indicando el motivo del fallo en la entrega y solicitando que el SMSC se incluya en una lista de centros de servicio que desean recibir una notificación cuando la parte de destino vuelva a estar disponible. El HLR establecerá una bandera en la cuenta de destino, indicando que no está disponible para la entrega de mensajes cortos, y almacenará la dirección del SMSC en la lista de datos de mensajes en espera (MWD) de la parte de destino. Las banderas válidas son la bandera de móvil no accesible (MNRF), la bandera de capacidad de memoria excedida (MCEF) y la bandera de móvil no accesible para GPRS (MNRG). El HLR comenzará a responder a las solicitudes SRI-for-SM con un fallo, indicando el motivo del fallo, y añadirá automáticamente la dirección del SMSC solicitante a la lista de MWD de la parte de destino. (Sin embargo, si el mensaje SRI para SM tiene establecido un indicador de prioridad, el HLR responderá con la dirección VLR si está disponible)
El HLR puede ser informado de que un suscriptor está disponible para la entrega de mensajes cortos de varias maneras:
Al recibir una indicación de que la parte de destino ahora está lista para recibir mensajes cortos, el HLR envía un mensaje MAP de AlertSC a cada uno de los SMSC registrados en la lista MWD para el suscriptor, lo que hace que el SMSC inicie nuevamente el proceso de entrega de mensajes cortos desde el principio. [1]
Además, el SMSC aplicará un cronograma de reintentos, intentando entregar periódicamente el SM sin recibir una alerta. El intervalo del cronograma de reintentos dependerá de la causa original de la falla: las fallas transitorias de la red darán como resultado un cronograma de reintentos corto, mientras que la falta de cobertura generalmente dará como resultado un cronograma más largo.
Las operaciones MAP relacionadas con la transferencia de mensajes cortos se resumen en la siguiente tabla:
InformServiceCentre es un mensaje que HLR puede proporcionar a la respuesta sendRoutingInfoForSM o reportSM-DeliveryStatus. El mensaje se utiliza normalmente para transferir indicadores MWD al centro de servicio de mensajes cortos . [1]
Si bien las especificaciones MAP 3GPP hacen un esfuerzo para divorciar a MAP de la capa que lo transporta, el transporte típico es a través de TCAP , que a su vez es a través de los protocolos SCCP/MTP[1-3] y/o SIGTRAN (SUA, M3UA, etc.).
Por lo tanto, una construcción MAP_OPEN está directamente relacionada con un TCAP_BEGIN con un contexto de aplicación MAP, y un MAP_CLOSE es un TCAP_END.
Si se envía un mensaje utilizando la fase 2 de MAP o superior, y sobre MTP en lugar de SIGTRAN , entonces el tamaño máximo de PDU de MTP puede hacer que el remitente inicie el envío de mensajes segmentados. Este proceso no está relacionado con la concatenación , sino que simplemente significa que la transacción con el MSC/SMSC/SGSN implica más pasos de lo habitual. La forma recomendada [1] es un TCAP_BEGIN vacío, seguido del contenido de MAP dentro de un TCAP_CONTINUE y completando con un TCAP_END. El TCAP_BEGIN tiene información relacionada con TCAP que de otro modo haría que se excediera el límite debido a los campos adicionales agregados por la fase 2 de MAP. El punto exacto en el que se requiere la segmentación depende de factores como la longitud de las direcciones, pero depende principalmente de la longitud del mensaje en sí. Los mensajes con alfabeto de 7 bits que tienen 140 caracteres o más normalmente están sujetos al procedimiento de segmentación MAP.
Este procedimiento de segmentación también es cada vez más seguido y, opcionalmente, aplicado por los operadores para evitar que la suplantación de SMS afecte a sus clientes. Esto funciona porque la parte que envía debe recibir las respuestas para poder enviar un mensaje y, por lo tanto, su dirección de origen debe ser correcta. [5]