El Protocolo de Ubicación Móvil ( MLP ) es un protocolo a nivel de aplicación para recibir la posición de Estaciones Móviles (MS: teléfonos móviles, dispositivos inalámbricos, etc.) independientemente de la tecnología de red subyacente. [1] [2] [3] [4]
El MLP sirve como interfaz entre un servidor de ubicación y una aplicación basada en la ubicación. Los servicios básicos de MLP se basan en los servicios de ubicación definidos por 3GPP. El protocolo de ubicación móvil (MLP) se describe en la especificación LIF TS 101. [5]
El propósito de esta tecnología es definir un método de acceso simple y seguro que permita a las aplicaciones móviles consultar información de ubicación de una red inalámbrica , independientemente de su tecnología de red subyacente y sus métodos de posicionamiento.
El MLP puede ser utilizado por una aplicación basada en la localización para solicitar información sobre la ubicación de una estación móvil a un servidor de localización (GMLC/MPC u otra entidad de la red inalámbrica). Este protocolo ha sido preparado por Location Interoperability Forum (LIF: Open Mobile Alliance en la actualidad) para proporcionar una API (interfaz de programación de aplicaciones) sencilla y segura, pero también podría utilizarse para otros tipos de servidores de localización y entidades de la red inalámbrica.
La API se basa en XML y está definida para ser transportada en HTTP o SOAP . Actualmente, solo se define la asignación a HTTP. Por razones de seguridad, se pueden utilizar los protocolos criptográficos Secure Socket Layer (SSL) o Transport Layer Security (TLS) para transportar HTTP (HTTPS). Además del Protocolo de ubicación móvil HTTPS, que utiliza autenticación por usuario y contraseña, la información se transporta en la parte del encabezado del mensaje MLP.
El último borrador de la especificación MLP es OMA-TS-MLP v 3.3 de marzo de 2009. [5] La versión 3.3 proporciona estas características:
Se utiliza para solicitar la ubicación de uno o más suscriptores móviles (MS). Se utiliza cuando se requiere una respuesta inmediata. La respuesta se puede devolver en más de un mensaje si la solicitud contenía más suscriptores móviles.
Se utiliza para solicitar la ubicación de uno o más MS involucrados en una llamada de emergencia. La respuesta se puede devolver en más de un mensaje si el servidor lo admite.
Este servicio lo inicia MS enviando una solicitud de ubicación originada en un dispositivo móvil [TS23271] a través de una red inalámbrica. Se lleva a cabo cuando un suscriptor móvil desea que un cliente LCS reciba la ubicación de MS.
Este servicio se inicia por red cuando MS inicia o libera una llamada de emergencia. Se genera un informe y se envía desde el servidor de ubicación al cliente LCS predefinido.
Este servicio se utiliza cuando el cliente LCS desea realizar un seguimiento de varios MS. Los desencadenadores pueden ser temporizadores o eventos MS como el cambio de ubicación.
Este servicio se utiliza para solicitar informes de ubicaciones históricas de un MS cuando se espera una gran cantidad de datos.
<!ELEMENTO msid (#PCDATA)><!ATTLIST identificador de mensajetipo (MSISDN | IMSI | IMEI | MIN | MDN |EME_MSID | IPV4 | IPV6)"MSISDN"enc (ASC | B64 | CRP) "ASC"><!ELEMENT rango_msid (msid_inicio, msid_fin)><!ATTLIST rango de msidtipo (MSISDN | IMSI | IMEI | MIN | MDN |EME_MSID | IPV4 | IPV6)"MSISDN"enc (ASC | B64 | CRP) "ASC"><!ELEMENT msids ((msid, sesión? |rango msid)+)><!ELEMENTO esrd(#PCDATA)><!ATTLIST esrdtipo (NA) "NA"><!ELEMENTO esrk(#PCDATA)><!ATTLIST esrktipo (NA) "NA"><!ELEMENT sesión (#PCDATA)sesiónTipo (APN | marcar) #REQUERIDO><!ELEMENTO start_msid (#PCDATA)><!ELEMENTO stop_msid (#PCDATA)>
<!ELEMENTO add_info (#PCDATA)><!ELEMENT eme_event (eme_pos+)><!ATTLIST evento_emedisparador_eme (EME_ORG |EME_REL)#REQUERIDO><!ELEMENT tlrr_event(tiempo | cambio_área | acción_ms)><!ELEMENTO ms_action VACÍO><!ATTLIST acción_mstipo (MS_AVAIL) #REQUERIDO><!ELEMENT intervalo (#PCDATA)><!ELEMENTO loc_type VACÍO><!ATTLIST tipo_ubicacióntipo (ACTUAL | ÚLTIMO |ACTUAL O ÚLTIMO | INICIAL)"ACTUAL"><!ELEMENT poserr(resultado, tiempo)><!ELEMENTO prior VACÍO><!ATTLIST prioridadtipo (NORMAL | ALTO) "NORMAL"><!ELEMENTO pushaddr (URL)><!ELEMENTO req_id (#PCDATA)><!ELEMENT resultado (#PCDATA)><!ATTLIST resultadoresid CDATA #REQUERIDO><!ELEMENT hora_de_inicio (#PCDATA)><!ATTLIST hora_de_inicioutc_off CDATA "0000"><!ELEMENT tiempo_de_detención (#PCDATA)><!ATTLIST tiempo_de_detenciónutc_off CDATA "0000"><!ELEMENTO tiempo (#PCDATA)><!ATTLIST tiempoutc_off CDATA "0000"><!ELEMENTO url (#PCDATA)><!ELEMENT Tiempo_restante (#PCDATA)>
<!ELEMENTO pos(msid, (pd | poserr), gsm_net_param?)><!ELEMENT eme_pos (msid, esrd?, esrk?, (pd | poserr))><!ELEMENTO trl_pos(msid,(pd | poserr))><!ELEMENTO trl_pos<!ATTLIST trl_trigger (TEMPORIZADOR | PERIÓDICO| MS_DISPONIBLE)<!ELEMENT pd (tiempo, forma, (alt, alt_acc?)?, velocidad?,dirección?, lev_conf?)><!ELEMENTO alt(#PCDATA)><!ELEMENTO alt_acc(#PCDATA)><!ELEMENT dirección (#PCDATA)><!ELEMENT este (#PCDATA)><!ELEMENT geo_info (sistema_coord_, dato, formato? Zona?)><!ELEMENTO coord_sys (#PCDATA)<!ELEMENT dato (#PCDATA)<!Formato ELEMENT (#PCDATA)><!ELEMENTO lat(#PCDATA)><!ELEMENT ll_point(latitud, longitud)><!ELEMENTO largo (#PCDATA)><!ELEMENT norte (#PCDATA)><!ELEMENT utm_point (coordenada este, coordenada norte, zona, zona_des)><!ELEMENTO velocidad (#PCDATA)><!ELEMENTO x (#PCDATA)><!ELEMENTO xy_punto(x,y)><!ELEMENTO y(#PCDATA)><!ELEMENT zona (#PCDATA)><!ELEMENTO zona_des(#PCDATA)><!ELEMENTO lev_conf (#PCDATA)>
<!ELEMENT forma (punto | círculo | arco_circular | elipse | polígono)><!ELEMENT punto (punto_ll | punto_utm | punto_xy)><!ELEMENTO ángulo (#PCDATA)><!ELEMENT arco_circ(punto, radianes_entrada, radianes_salida, ángulo_inicio, ángulo_fin)><!ELEMENT círculo (punto, rad)><!ELEMENT elipse (punto, ángulo, semi_mayor, semi_menor)><!ELEMENTO en_rad(#PCDATA)><!ELEMENTO fuera_rad(#PCDATA)><!ELEMENT polígono (punto+)><!ELEMENTO rad(#PCDATA)><!ELEMENTO semi_mayor (#PCDATA)><!ELEMENTO semi_menor (#PCDATA)><!ELEMENTO ángulo_inicial(#PCDATA)><!ELEMENT ángulo_de_detención (#PCDATA)>
<!ELEMENT eqop (resp_req?, resp_timer?, (ll_acc | hor_acc)?,alt_acc?, edad_máx_ubicación?)><!ELEMENTO qop ((acc_ll | acc_horario?, acc_alt?)><!ELEMENTO ll_acc(#PCDATA)><!ELEMENTO hor_acc(#PCDATA)><!ELEMENTO resp_req VACÍO><!ATTLIST resp_reqtipo (SIN_RETRASO | RETRASO_BAJO |RETRASO_TOL)"TOL DE RETRASO"><!ELEMENTO resp_timer (#PCDATA)>
<!ELEMENT gsm_net_param (cgi?, neid?, nmr?, ta?)><!ELEMENTO cgi(mcc,mnc,lac,cellid)><!ELEMENT neid (vmscid | vlrid)><!ELEMENTO vmscid(cc, ndc, vmscno)><!ELEMENTO vlrid(cc, ndc, vlrno)><!ELEMENTO nmr(#PCDATA)><!ELEMENTO mcc(#PCDATA)><!ELEMENTO ndc (#PCDATA)><!ELEMENTO cc(#PCDATA)><!ELEMENTO vmscno(#PCDATA)><!ELEMENTO vlrno(#PCDATA)><!ELEMENTO lac(#PCDATA)><!ELEMENTO cellid(#PCDATA)><!ELEMENTO ta(#PCDATA)>
<!ELEMENT cliente (id, contraseña?, id de servicio? tipo de servicio?)><!ELEMENTO id de sesión (#PCDATA)><!ELEMENTO id (#PCDATA)><!ELEMENT originador (id, id de servicio?)><!ELEMENTO contraseña (#PCDATA)><!ELEMENTO serviceid (#PCDATA)><!ELEMENT tipo de servicio VACÍO><!ATTLIST tipo de serviciotipo (ACTIVO | PASIVO) "PASIVO"><!ELEMENT subcliente (id, contraseña?, id de servicio?)><!ATTLIST subclientelast_client (SI | NO) "NO">]