Compartir a través de


Operaciones DE USSD de MB

En este tema se describen las operaciones para enviar y recibir mensajes mediante las funcionalidades de datos de servicio complementarios no estructurados (USSD) de un dispositivo MB.

La compatibilidad con USSD es opcional y cuando solo se admite está disponible en redes GSM. Los controladores de miniporte que admiten USSD deben establecer la marca de funcionalidad WWAN_CTRL_CAPS_USSD como parte del miembro WwanControlCaps de la estructura WWAN_DEVICE_CAPS al procesar solicitudes de OID_WWAN_DEVICE_CAPS . Si los controladores de minipuerto no admiten USSD, no deben establecer esta marca y deben devolver WWAN_STATUS_NO_DEVICE_SUPPORT para todos los OID relacionados con USSD.

El modelo de controlador MB admite las siguientes operaciones de USSD: Operaciones iniciadas por el dispositivo:

  • Envío de un mensaje USSD en una sesión de USSD recién creada

  • Envío de un mensaje USSD en una sesión de USSD recién creada

  • Envío de un mensaje USSD en una sesión de USSD existente

  • Terminación de la sesión de USSD

Para obtener más información sobre las operaciones iniciadas por el dispositivo, consulte OID_WWAN_USSD.

Operaciones iniciadas por la red:

  • Recepción de un mensaje USSD en una sesión de USSD recién creada

  • Recepción de un mensaje USSD en una sesión de USSD existente

  • Terminación de la sesión USSD

Para obtener más información sobre las operaciones iniciadas por la red, consulte NDIS_STATUS_WWAN_USSD.

El protocolo USSD solo permite una única sesión de USSD en cualquier momento. En el caso de las operaciones iniciadas por el dispositivo, el miembro RequestType de la estructura WWAN_USSD_REQUEST indica el propósito del OID de solicitud:

  • WwanUssdRequestInitiate se usa para crear una nueva sesión de USSD y enviar la cadena USSD proporcionada a la red. Si ya existe una sesión USSD, el controlador debe producir un error en la solicitud con un evento de tipo WwanUssdEventOtherLocalClient. Debe haber una cadena USSD. Por ejemplo, la longitud debe estar entre 1 y 160 bytes.

  • WwanUssdRequestContinue se usa para enviar una cadena USSD en una sesión existente. Debe haber una cadena USSD. Por ejemplo, la longitud debe estar entre 1 y 160 bytes.

  • WwanUssdRequestCancel se usa para finalizar la sesión existente. El controlador debe responder con un evento de tipo WwanUssdEventTerminated, incluso si no existía ninguna sesión (lo que puede ocurrir durante una versión simultánea de la sesión desde la red y el cliente local). El contenido de la cadena USSD debe omitirse para esta solicitud; la longitud de cadena se establece en cero para indicar que no hay ninguna cadena USSD.

En el caso de las operaciones iniciadas por la red, el miembro EventType de la estructura WWAN_USSD_EVENT indica el propósito general de la indicación:

  • El evento WwanUssdEventNoActionRequired se usa para las notificaciones USSD iniciadas por la red o cuando no se necesita más información después de una operación iniciada por el móvil. El evento WwanUssdEventActionRequired se usa para las solicitudes USSD iniciadas por la red o cuando se necesita más información después de una operación iniciada por el móvil. Ambos eventos requieren que haya una cadena USSD no vacía. El miembro SessionState se usa para indicar si la cadena USSD es el primer mensaje de una sesión de USSD; debe establecerse en WwanUssdSessionStateNew para el primer mensaje de una sesión USSD iniciada por la red y en WwanUssdSessionStateExisting en todos los demás casos.

  • El evento WwanUssdEventActionRequired también indica que la sesión sigue abierta. Todos los demás eventos indican que se ha cerrado la sesión.

  • Los eventos WwanUssdEventNoActionRequired y WwanUssdEventActionRequired son los únicos eventos que contienen una cadena USSD. Todos los demás eventos deben establecer la longitud de la cadena USSD en 0 para indicar que la cadena no está presente. El valor del miembro SessionState se omite si no hay ninguna cadena presente.

  • El evento WwanUssdEventTerminated se usa para indicar que se ha finalizado la sesión de USSD.

  • El evento WwanUssdEventOtherLocalClient se usa para indicar que no se puede establecer una nueva sesión de USSD porque ya hay una sesión abierta. Esto incluye sesiones que son invisibles para la pila de MB, como una finalización de sesión USSD en la SIM.

  • El evento WwanUssdEventOperationNotSupported se usa para indicar que el controlador o el dispositivo no admiten la solicitud anterior.

  • El evento WwanUssdEventNetworkTimeOut se usa para indicar que la sesión se cerró debido a un tiempo de espera de sesión por la red o localmente. El controlador o dispositivo es responsable de agotar el tiempo de espera de una sesión de USSD inactiva después de un tiempo de espera específico de la implementación.