Detalles técnicos del evento de notificación del operador de telefonía móvil
En este tema se explican los detalles técnicos de un evento de notificación de operador de telefonía móvil.
Regístrese para el evento MobileOperatorNotification mediante metadatos.
Definición de reglas de filtrado en XML de aprovisionamiento
Carga de eventos
La carga del evento MobileOperatorNotification incluye los siguientes campos:
Campo | Descripción |
---|---|
MessageType | Enumeración del mensaje que desencadenó el evento. |
Interfaz | GUID que corresponde a la interfaz física asociada al evento. |
EncodingType | Método de codificación para el mensaje, si MessageType es SMS/USSD. |
MessageDataSize | Tamaño del mensaje, en bytes, si MessageType es SMS/USSD. |
Mensaje | Mensaje sin procesar que se recibe, si MessageType es SMS/USSD. |
El evento MobileOperatorNotification habilita cada uno de los escenarios que se describen en Escenarios de notificación de operador de telefonía móvil diferenciandolos mediante el campo MessageType en la carga del evento. Los MessageTypes se enumeran de la siguiente manera:
Enumeración | Tipo |
---|---|
0 | GSM SMS |
1 | SMS EQUIVALE A |
2 | USSD |
3 | DataPlanThresholdReached |
4 | DataPlanReset |
5 | DataPlanDeleted |
6 | ProfileConnected |
7 | ProfileDisconnected |
8 | RegisteredRoaming |
9 | RegisteredHome |
10 | TetheringEntitlementCheck |
El elemento de trabajo asociado al evento MobileOperatorNotification debe comenzar con la lógica que diferencia eficazmente messageType y ejecuta el código adecuado para cada escenario.
SMS GSM/ESPECIFICACIONES y USSD
Un mensaje de operador entrante, incluido SMS y USSD, desencadena el evento MobileOperatorNotification junto con los correspondientes MessageTypes correspondientes. Los únicos de estos tipos son EncodingType, MessageDataSize y Message.
DataPlanThresholdReached
De forma predeterminada, este tipo de mensaje está deshabilitado. Puede habilitarlo mediante metadatos de aprovisionamiento para especificar el campo DataUsageInMobileOperatorNotificationEnabled , como se muestra aquí.
<?xml version="1.0"?>
<CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1">
<Global>
<CarrierId>{2c85b76b-f859-47c4-8122-721fe8b6c25f}</CarrierId>
<SubscriberId>012345678901234</SubscriberId>
</Global>
<MBNProfiles>
<DefaultProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1">
<Name>Contoso</Name>
<AssociatedPlan>SamplePlan</AssociatedPlan>
<Context>
<AccessString>Contoso.com</AccessString>
<UserLogonCred>
<UserName>User</UserName>
<Password>[PLACEHOLDER]</Password>
</UserLogonCred>
</Context>
</DefaultProfile>
</MBNProfiles>
<Plans>
<Plan xmlns="http://www.microsoft.com/networking/CarrierControl/Plans/v1" Name="SamplePlan">
<Description PlanType="Fixed">
<DataLimitInMegabytes>500</DataLimitInMegabytes>
<DataUsageInMobileOperatorNotificationEnabled>true</DataUsageInMobileOperatorNotificationEnabled>
</Description>
</Plan>
</Plans>
</CarrierProvisioning>
Para obtener más información sobre los metadatos de aprovisionamiento de cuentas, consulte Aprovisionamiento de cuentas.
El evento se genera con este MessageType cuando los contadores de datos locales calculan que el uso (bytes enviados y recibidos) en la interfaz de banda ancha móvil ha cambiado un 5 % desde la última aparición, excepto en los casos siguientes:
Cuando se conecta a una red doméstica (sin itinerancia), si no se ha especificado el límite del plan de datos, este evento se desencadena cada 100 MB de uso de datos locales.
Cuando se conecta a una red móvil, el límite del plan de datos no se aplica y este evento se desencadena cada 5 MB de uso de datos locales.
Los contadores de datos locales de Windows 8 se actualizan cada minuto; como máximo, este evento se genera una vez por minuto en todos los escenarios descritos. En Windows 8.1 el evento se entrega en tiempo real cuando se alcanza el umbral del 5 %.
Nota
Aunque esta información es una buena guía de primer orden, Windows no puede tener en cuenta el tráfico no facturado ni el uso en otros dispositivos que comparten los mismos límites de datos (como planes familiares o intercambio de SIM). Las aplicaciones de operador de telefonía móvil solo deben usar contadores de datos locales para aproximar el uso desde la última sincronización con el propio sistema de facturación del operador. Para el uso de datos que ya se ha procesado, el sistema de facturación debe considerarse autoritativo.
DataPlanReset
En la fecha de restablecimiento del plan, el Uso de datos y el Administrador de suscripciones (DUSM) restablece el uso de datos local actual del usuario en cero.
DataPlanDeleted
En el caso de los planes de datos de pago previo que tienen una fecha de expiración fija, el DUSM elimina el perfil de conexión asociado a la cuenta en la fecha de expiración y el evento MobileOperatorNotification se desencadena mediante este MessageType. Cuando se elimina el perfil de conexión, Windows Administrador de conexiones ya no intenta conectarse automáticamente a la red que describe el perfil de conexión.
ProfileConnected y ProfileDisconnected
El evento MobileOperatorNotification se genera con estos MessageTypes cuando Windows Administrador de conexiones se conecta al perfil de red proporcionado por los metadatos de la experiencia del operador. Este evento se desencadena en cada conexión y desconexión, incluida la conexión inicial que sigue a una suspensión o reanudación. También se desencadena si el dispositivo ya está conectado cuando se descargan e instalan los metadatos de la aplicación y del servicio.
ProfileConnected MessageType se desencadena en la conectividad L2 para la interfaz de banda ancha móvil.
Nota
Este desencadenador se produce antes de que se complete la identificación de red. El evento NetworkStatusChanged (parte de networkInformation API) se genera cuando la identificación de red determina el nivel de conectividad de la red. Para obtener más información sobre la identificación de red, consulte Inicio rápido: Recuperación de información de conexión de red y la clase NetworkInformation .
RegisteredRoaming y RegisteredHome
El evento MobileOperatorNotification se genera con estos MessageTypes cuando Windows Administrador de conexiones se registra en una red móvil. Este evento se desencadena en cada registro, incluido el registro inicial después de una suspensión o reanudación. También se desencadena si el dispositivo ya está registrado en la red cuando se descargan e instalan los metadatos de la aplicación y del servicio.
La aplicación solo debe notificar al usuario una vez cuando se registre en una red móvil y una vez cuando vuelva a su red doméstica. Dado que este evento se desencadena en cada registro, la aplicación es responsable de realizar un seguimiento del estado registrado anterior en los datos de sesión de la aplicación.
TetheringEntitlementCheck
El evento MobileOperatorNotification se genera con este MessageTypes cuando el usuario activa Internet Sharing. El evento se desencadena cada vez que el usuario intenta usar Internet Sharing siempre que el operador de telefonía móvil haya establecido el elemento AllowTethering en el esquema de metadatos del servicio en EntitlementCheckRequired. Para obtener más información sobre el esquema de metadatos del servicio, consulte Referencia del esquema del paquete de metadatos de servicio.
La aplicación debe ejecutar el mecanismo de comprobación de derechos adecuado compatible con la red del operador de telefonía móvil y enviar el resultado al sistema mediante el método AuthorizeTethering de la clase NetworkOperatorNotificationEventDetails en el espacio de nombres Windows.Networking.NetworkOperators . Si la aplicación no tiene la capacidad de ejecutar la comprobación de derechos, el operador de telefonía móvil debe cambiar el elemento AllowTethering de metadatos de servicio a Always o Never, de modo que el evento nunca se genere.
Regístrese para el evento MobileOperatorNotification mediante metadatos.
En general, el usuario debe ejecutar una aplicación al menos una vez antes de poder registrar elementos de trabajo con el agente de eventos del sistema. Sin embargo, dado que los eventos MobileOperatorNotification son necesarios para completar escenarios clave de banda ancha móvil, este evento está asociado a la aplicación de banda ancha móvil mediante metadatos de servicio. En los metadatos del servicio, configure el elemento DeviceCompanionApplications .
<DeviceCompanionApplications>
<Package>
<Identity Name="MyOperatorNotification" Publisher="MyCorporation " />
<Applications>
<Application Id="MyOperatorNotification" />
<DeviceNotificationHandlers>
<DeviceNotificationHandler EventID="MobileOperatorNotificationHandler" EventAsset="backgroundtask.js" />
</DeviceNotificationHandlers>
</Applications>
</Package>
</DeviceCompanionApplications>
El atributo EventID indica al sistema qué tipo de evento esperar del dispositivo. El valor del atributo EventAsset debe apuntar al punto de entrada que implementa la tarea en segundo plano. Esto indicará al sistema qué tarea se ejecutará cuando se haya producido ese evento en particular.
Con este ejemplo, el sistema crea y registra un evento específico de ese dispositivo. También registra la aplicación de banda ancha móvil para este evento. La aplicación debe tener un archivo JavaScript denominado backgroundtask.js que ejecuta el sistema cada vez que recibe una notificación de operador.
Si la aplicación de banda ancha móvil está escrita en C#, el recurso de evento debe apuntar a la clase en tiempo de ejecución que implementa la interfaz backgroundtask.
<DeviceNotificationHandlers>
<DeviceNotificationHandler EventID="MobileOperatorNotificationHandler" EventAsset="MNOMessageBackground.OperatorNotification" />
Cuando se descargan los metadatos del servicio y la aplicación, Device Setup Manager registra el elemento de trabajo adecuado con System Event Broker antes de ejecutar la aplicación. Inmediatamente después de registrar el elemento de trabajo, si el dispositivo de banda ancha móvil está registrado o conectado a la red, el evento MobileOperatorNotification se desencadena junto con el MessageType correspondiente.
Cambio del registro de tareas en segundo plano en metadatos
Si el punto de entrada de la tarea en segundo plano se cambia en una versión actualizada de la aplicación de banda ancha móvil, también se debe cambiar el elemento DeviceNotificationHandler en los metadatos del servicio.
Los metadatos del servicio se actualizan automáticamente en equipos que ejecutan Windows 8, Windows 8.1 y Windows 10. Las aplicaciones de banda ancha móvil se actualizan en Microsoft Store. Debe evitar cambiar el registro de tareas en segundo plano de DeviceNotificationHandler en los metadatos del servicio. Si se requiere un cambio, los metadatos del servicio deben contener referencias a todos los distintos puntos de entrada de tareas en segundo plano usados en todas las versiones compatibles de la aplicación de banda ancha móvil para conservar la funcionalidad de los usuarios que no han actualizado la aplicación de banda ancha móvil.
Definición de reglas de filtrado en xml de aprovisionamiento
Windows acepta un archivo de aprovisionamiento basado en XML. Aquí se muestra una versión de ejemplo del XML de aprovisionamiento:
<?xml version="1.0" encoding="utf-8"?>
<CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1">
<Global>
<!-- Adjust the Carrier ID to fit match the Service Number in service metadata. Refer to the documentation about CarrierId. -->
<CarrierId>{11111111-1111-1111-1111-111111111111}</CarrierId>
<!-- Adjust the Subscriber ID. Refer to the documentation about Subscriber ID's. -->
<SubscriberId>1234567890</SubscriberId>
</Global>
<MBNProfiles>
<DefaultProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1">
<!-- Adjust the profile name -->
<Name>Contoso</Name>
<AssociatedPlan>Limited</AssociatedPlan>
<!-- Adjust the home provider name for the given SIM/Device -->
<HomeProviderName>Contoso</HomeProviderName>
<Context>
<!-- Adjust the access string to your APN. -->
<AccessString>Contoso.Contoso</AccessString>
<!-- Adjust the UserLogonCred to fit your UserLogonCred. Refer to the documentation about UserLogonCred's. -->
<UserLogonCred>
<UserName>user</UserName>
<Password>[PLACEHOLDER]</Password>
</UserLogonCred>
</Context>
</DefaultProfile>
<Messages xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1">
<Message RuleId="Sample1" Silent="true">
<SMSBearer ClassZeroOnly="false" Sender="18005551212"/>
<!-- [^]* matches all messages from this sender, regardless of content -->
<Pattern>[^]*</Pattern>
<!-- Because no Fields are specified, this message will be passed to the operator app without parsing. -->
</Message>
<Message RuleId="Sample2" Silent="false">
<!-- Parsing a simple usage message. -->
<USSDBearer/>
<Pattern>(\d+\.\d+)(\w+) of (\d+)(\w+) used as of (\S+)</Pattern>
<!-- Using these field definitions, Windows will automatically update usage data before passing the message
to the operator app. -->
<Units G="GB" M="MB"/>
<Fields>
<!-- These fields are currently unordered, but an order will be required in RC. -->
<Usage Group="1" UnitGroup="2"/>
<UsageTimestamp Group="5" Format="%I:%M%p on %d %b"/>
<DataLimit Group="3" UnitGroup="4"/>
</Fields>
</Message>
</Messages>
</MBNProfiles>
<Provisioning />
</CarrierProvisioning>
Para obtener más información sobre los metadatos de aprovisionamiento de cuentas, consulte Aprovisionamiento de cuentas.
Las reglas para identificar un mensaje de texto como un mensaje de operador se pueden definir en este XML.
Remitente permitido El atributo Sender especifica la dirección reservada del remitente desde la que se permite que llegue la notificación. (Este número debe coincidir exactamente con el número de remitente que se recibe en el mensaje SMS, incluido el formato internacional).
Patrón Expresión regular para identificar y, opcionalmente, extraer los campos de datos del mensaje de texto. Para buscar coincidencias con todos los mensajes de un remitente, use el patrón
[^]*
.
Temas relacionados
Habilitación de notificaciones de operadores móviles y eventos del sistema
Creación y configuración de experiencias de uso compartido de Internet