3.5.5.2 Evaluate the License for Count and Expiration Criteria

The server MUST compare a MaxCount supplied by the caller and a count extracted from the aggregated license data. The server MUST perform processing, based on that comparison, as follows.

  1. Check to see if the MaxCount policy is equal to IGNORE.

    1. If so, then perform a sync. After the sync, no further processing is required.

    2. Otherwise, check to see if the License Count is less than or equal to the MaxCount supplied by the caller.

      1. If so, no sync is required. No further processing is required.

      2. Otherwise, a sync is required. After the sync, no further processing is required.

The following diagram depicts the processing described in this section.

License play count validation

Figure 8: License play count validation

If both synchronization criteria are set to IGNORE then all KIDs for all licenses are returned, even for those KIDs that cannot expire. Otherwise the license is evaluated according to the following table.

License state

Criteria for inclusion in synchronization list

WM_DRM_LICENSE_STATE_COUNT

Count Test

WM_DRM_LICENSE_STATE_UNTIL

Hours Test on until-date

WM_DRM_LICENSE_STATE_FROM_UNTIL

Hours Test on from-date

Hours Test on until-date

WM_DRM_LICENSE_STATE_COUNT_FROM

Hours Test on from-date

Count Test

WM_DRM_LICENSE_STATE_COUNT_FROM_UNTIL

Hours Test on from-date

Count Test

Hours Test on until-date

WM_DRM_LICENSE_STATE_COUNT_UNTIL

Hours Test on until-date

Count Test

WM_DRM_LICENSE_STATE_EXPIRATION_AFTER_FIRSTUSE

Count Test with 1 as MaxCount

WM_DRM_LICENSE_STATE_NORIGHT

Sync always

WM_DRM_LICENSE_STATE_FROM

Sync Never

WM_DRM_LICENSE_STATE_UNLIM

Sync Never

  • The date is extracted from the aggregated license state data.

  • The threshold is expressed in hours.

The server MUST perform processing as follows:

  1. Check to see if the MaxHours policy is set to IGNORE.

    1.  If so, a sync is required. After the sync, no further processing is required.

  2. Otherwise:

    1.  Set the threshold time to the current time (Now) plus MaxHours.

    2.  Check if the license date is less than or equal to the threshold time.

      1.  If so, a sync is required. After the sync, no further processing is required.

      2.  Otherwise, no further processing is required.

The following diagram depicts the processing described in this section.

Evaluating the expiration characteristics of a license

Figure 9: Evaluating the expiration characteristics of a license