a、总结点
1、如果 ro 包含于 dcf 中到达,则,Roap:ROPayload 的 riUrl 可用于触发 registe 或 joinDomain(可能伴随 registe) trigger。伴随的 registe 如何触发?
2、收到 trigger 后,除了 registe 外,需要检查是否有对应的 ri context,没有的话需要先 registe再执行 trigger 对应的 roap protocol。如何触发 registe?
3、trigger 的 roapUrl 可用于明确和隐含的 roap protocol。如 requestRo 的可用于 registe。之后的 requestRo 还用此 url?
4、返回 NotRegistered、DeviceTimeError 时,可用之前 request 中的 url 进行 registe,此 url 应该是从 trigger 中来。
5、dcf 中的 RightsIssuerURL 可触发 trigger(应该是 requestRo)。Ri context 中的 riUrl 可用于主动发起 roap protocol。
b、包含 url 的地方
dcf、 rights、 ri context、 trigger。
c、得到 dcf 对应的 ro 的过程:
dcf ---> get RightsIssuerURL ---> requestRo trigger ---> registe(TriggerURL) ---> requestRo(TriggerURL)
d、《drm》文档中与 registe 有关的地方
5.1.12 When a ROAP trigger is unavailable the riURL from the RI Context MUST be used. By using such context riURL a Device is able to perform unsolicited ROAP protocols to, for instance, leave a Domain.
Trigger url可用于明确的和含蓄的roap protocol。Ri context可用于主动的发起roap protocol。
5.2.1 besides the <registrationRequest> and the <identificationRequest>, the DRM Agent MUST use this value to verify that it has a valid RI Context with the Rights Issuer. If the DRM Agent does not have a valid RI Context with the identified Rights Issuer then the DRM Agent MUST initiate the Registration Protocol before initiating the protocol indicated in the <roapTrigger> element. If the implicitly triggered Registration Protocol does not lead to a valid RI Context, then the DRM Agent MUST discard the trigger.
收到trigger后,检查ri是否已经registe,没有的话,先需要registe再trigger。如何registe?
5.2.1 The <roapURL> is used in conjunction with the protocol indicated in the <roapTrigger> element The <roapURL> is also used in conjunction with any other implicitly triggered ROAP protocol (See 5.1.12).
Trigger的RoapUrl可用于隐含的roap protocol,如requestRo的可用于registe,之后requestRo还用此url?
5.2.2 During the installation of an embedded rights objects the DRM Agent MAY register to a Rights Issuer (Device ROs) or join a Domain (Domain ROs). The RI registration or Domain join may be implicit or initiated by sending a HTTP GET to the riURL attribute of the roap:ROPayload as specified in section 8.7.2.1 and 10.3.1.2.
roap:ROPayload 的 riUrl 可触发 registe 或 joinDomain。
5.2.2 If the (P)DCF contains a RightsIssuerURL then the DRM Agent MUST send a HTTP GET request to the URL and MUST be prepared to receive either an (X)HTML page, or ROAP Trigger from the RI
install ro时,dcf 的 RightsIssuerURL 可触发 trigger,应该是 requestRo 的。
5.3.6 DeviceTimeError:...Instead, the Device SHOULD initiate the 4-pass Registration protocol, using the same ROAP URL as from the ROAP Request that resulted in the error response.
5.3.6 NotRegistered:...itSHOULD initiate the 4-pass Registration protocol, using the same ROAP URL as from the ROAP Request that resulted in the error response.
用之前 request 中的 url 可进行 registe protocol,这个url应该就是从trigger中来。
5.3.10 In case of Device RO, an HTTP GET request to this URL SHOULD return either a RegistrationRequest ROAP Trigger
Roap:ROPayload 的 riUrl 可触发 registe 或 joinDomain。
5.4.3 If the RI determines that it does not have any registration information for the Device it SHOULD send an IdentificationResponse message with the status attribute equal to “NotRegistered”.
在进行 identification protocol 前,需先 registe,否则会返回错误。
8.7.2.1 It should be noted that in the event that a JoinDomain ROAP Trigger is returned and the Device does not have a valid RI context then the Device MUST automatically register with the RI (as specified in section 5.2.1) prior to sending a JoinDomainRequest message.
Roap:ROPayload 的 riUrl 可触发 joinDomain,但 join 前需先 registe。
10.3.1.3 the Device MAY send an HTTP GET to the URL specified in the riURL attribute of the roap:ROPayload.
Roap:ROPayload 的 riUrl 可触发 registe。