MB USSD 작업

이 항목에서는 MB 디바이스의 USSD(비정형 보조 서비스 데이터) 기능을 사용하여 메시지를 보내고 받는 작업에 대해 설명합니다.

USSD 지원은 선택 사항이며 지원되는 경우 GSM 네트워크에서만 사용할 수 있습니다. USSD를 지원하는 미니포트 드라이버는 OID_WWAN_DEVICE_CAPS 요청을 처리할 때 WWAN_DEVICE_CAPS 구조체의 WwanControlCaps 멤버의 일부로 WWAN_CTRL_CAPS_USSD 기능 플래그를 설정 해야 합니다. 미니포트 드라이버가 USSD를 지원하지 않는 경우 이 플래그를 설정해서는 안 되며 모든 USSD 관련 OID에 대한 WWAN_STATUS_NO_DEVICE_SUPPORT 반환해야 합니다.

MB 드라이버 모델은 다음과 같은 USSD 작업을 지원합니다. 디바이스 시작 작업:

  • 새로 만든 USSD 세션에서 USSD 메시지 보내기

  • 새로 만든 USSD 세션에서 USSD 메시지 보내기

  • 기존 USSD 세션에서 USSD 메시지 보내기

  • USSD 세션 종료

디바이스 시작 작업에 대한 자세한 내용은 OID_WWAN_USSD 참조하세요.

네트워크 시작 작업:

  • 새로 만든 USSD 세션에서 USSD 메시지 수신

  • 기존 USSD 세션에서 USSD 메시지 수신

  • USSD 세션 종료

네트워크 시작 작업에 대한 자세한 내용은 NDIS_STATUS_WWAN_USSD 참조하세요.

USSD 프로토콜은 언제든지 단일 USSD 세션만 허용합니다. 디바이스 시작 작업의 경우 WWAN_USSD_REQUEST 구조의 RequestType 멤버는 요청 OID의 용도를 나타냅니다.

  • WwanUssdRequestInitiate 는 새 USSD 세션을 만들고 제공된 USSD 문자열을 네트워크에 보내는 데 사용됩니다. USSD 세션이 이미 있는 경우 드라이버는 WwanUssdEventOtherLocalClient 형식의 이벤트로 요청을 실패해야 합니다. USSD 문자열이 있어야 합니다. 예를 들어 길이는 1바이트에서 160바이트 사이여야 합니다.

  • WwanUssdRequestContinue 는 기존 세션에서 USSD 문자열을 보내는 데 사용됩니다. USSD 문자열이 있어야 합니다. 예를 들어 길이는 1바이트에서 160바이트 사이여야 합니다.

  • WwanUssdRequestCancel 은 기존 세션을 종료하는 데 사용됩니다. 드라이버가 WwanUssdEventTerminated 형식의 이벤트로 응답해야 합니다. 세션이 없는 경우에도(네트워크 및 로컬 클라이언트에서 세션을 동시에 릴리스하는 동안 발생할 수 있음) 이 요청에 대해서는 USSD 문자열의 내용을 무시해야 합니다. 문자열 길이는 USSD 문자열이 없음을 나타내기 위해 0으로 설정됩니다.

네트워크 시작 작업의 경우 WWAN_USSD_EVENT 구조체의 EventType 멤버는 표시의 높은 수준의 목적을 나타냅니다.

  • WwanUssdEventNoActionRequired 이벤트는 네트워크 시작 USSD 알림에 사용되거나 모바일 시작 작업 후에 추가 정보가 필요하지 않은 경우에 사용됩니다. WwanUssdEventActionRequired 이벤트는 네트워크 시작 USSD 요청에 사용되거나 모바일 시작 작업 후에 추가 정보가 필요한 경우에 사용됩니다. 두 이벤트 모두 비어 있지 않은 USSD 문자열이 있어야 합니다. SessionState 멤버는 USSD 문자열이 USSD 세션의 첫 번째 메시지인지 여부를 나타내는 데 사용됩니다. 네트워크에서 시작된 USSD 세션의 첫 번째 메시지 및 다른 모든 경우에 WwanUssdSessionStateExisting에 대해 WwanUssdSessionStateNew로 설정해야 합니다.

  • WwanUssdEventActionRequired 이벤트도 세션이 여전히 열려 있음을 나타냅니다. 다른 모든 이벤트는 세션이 닫혔음을 나타냅니다.

  • WwanUssdEventNoActionRequiredWwanUssdEventActionRequired 이벤트는 USSD 문자열을 포함하는 유일한 이벤트입니다. 다른 모든 이벤트는 문자열이 없음을 나타내기 위해 USSD 문자열 길이를 0으로 설정해야 합니다. 문자열이 없으면 SessionState 멤버의 값이 무시됩니다.

  • WwanUssdEventTerminated 이벤트는 USSD 세션이 종료되었음을 나타내는 데 사용됩니다.

  • WwanUssdEventOtherLocalClient 이벤트는 이미 열려 있는 세션이 있으므로 새 USSD 세션을 설정할 수 없음을 나타내는 데 사용됩니다. 여기에는 SIM에서 USSD 세션 종료와 같이 MB 스택에 표시되지 않는 세션이 포함됩니다.

  • WwanUssdEventOperationNotSupported 이벤트는 이전 요청이 드라이버 또는 디바이스에서 지원되지 않음을 나타내는 데 사용됩니다.

  • WwanUssdEventNetworkTimeOut 이벤트는 네트워크 또는 로컬에서 세션 시간 제한으로 인해 세션이 닫혔음을 나타내는 데 사용됩니다. 드라이버 또는 디바이스는 구현 특정 시간 제한 후 비활성 USSD 세션의 시간 초과를 담당합니다.