Compartir a través de


Proximity Detection

Proximity detection is a process in which the transmitter and receiver exchange messages in an attempt to determine the latency between them. If the latency is low enough (less than or equal to 7 milliseconds), the receiver is considered Near the transmitter. The transmitter will only transfer licenses to receivers that are Near.

Proximity detection is always performed after the registration Response Message is handled by the receiver. Proximity detection must be initiated after the successful completion of the registration procedure and after each Revalidation procedure. The proximity detection Procedure must have successfully completed before license fetch can occur.

When proximity detection completes successfully, the transmitter must start a reregistration timer set to expire in 48 hours. If reregistration and proximity detection are not successfully completed again when this timer expires, the transmitter must immediately stop transmitting content to the receiver until registration and proximity detection are once again successfully completed.

Preparation for Proximity Detection

  1. In the registration request to the transmitter, the receiver indicates which type(s) of proximity detection the receiver supports.
  2. The transmitter processes the receiver's registration request and examines the proximity detection types the receiver supports. If none of the types the receiver supports is supported by the transmitter, a DRM_E_PRND_PROXIMITY_DETECTION_REQUEST_CHANNEL_TYPE_UNSUPPORTED error is returned from the registration request processing and the registration sequence is failed.
  3. If a proximity detection type match is found, the transmitter indicates, in the registration response to the receiver, which proximity detection type, and the proximity detection channel, it wants the receiver to use.
  4. The receiver should retain the proximity detection type and proximity detection channel for use in the proximity detection operation. Because the proximity detection operation might require retries, the receiver should retain this information until after the proximity detection has succeeded.
  5. After registration, the receiver has one minute in which to complete the proximity detection operation. If it fails to complete the operation within one minute, the transmitter will reject any subsequent proximity detection Start requests with a DRM_E_DEVICE_NOT_REGISTERED error.

Note

All transmitters must support TCP proximity detection, but if the receiver indicates that it supports other type(s) of proximity detection, the transmitter may choose to use a different type instead.

Proximity Detection Sequence Flow

Figure 1.  Proximity Detection Sequence

  1. The receiver initiates the proximity detection operation.
  2. The transmitter receives the proximity detection request from the receiver and generates a challenge.
  3. The receiver processes the challenge and sends a response to the transmitter.
  4. The transmitter receives the response, processes it, and either:
    • If the proximity detection succeeds, notifies the receiver of the success.
    • If the proximity detection fails, notifies the receiver with an indication of why the operation failed and sends it to the receiver.
  5. The process repeats until either the proximity detection succeeds or one minute has elapsed.
  6. If proximity detection is successful, the transmitter starts its 48 hour reregistration timer, as described earlier in this topic.

The following new interface is available in PlayReady Client SDK for Windows Store Apps to support PlayReady-ND proximity detection:

Interface Description
INDProximityDetectionCompletedEventArgs Provides arguments for a PlayReady-ND ProximityDetectionCompleted event.