NOTIFY

提供: 個人的記録
移動: 案内検索

M-SEARCHに対する応答。
UPNPデバイスはNOTIFYをブロードキャストグループに送信し、存在を告知してくる。

受信場所

IPv4

  • アドレス
    239.255.255.250
  • ポート番号
    1900

IPv6

  • アドレス
    FF02::C
  • ポート番号
    1900

書式

以下の書式で送られてくる。
改行コードは「\r\n」固定。項目は複数かえってくる。
可変部分は{内容}の形式で記述している。

NOTIFY * HTTP/1.1
{項目名}:{値}

以下に主な項目名の説明を記述する。

Cache-Control

NOTIFYの有効期限が以下の形式で返送される。

max-age={秒}

Location

デバイスのDescription URL。
ここに記載されたURLにアクセスすることでデバイスを制御するための情報を得ることができる。 DescriptionのXMLスキーマはUPNPフォーラムの仕様書に「UPnP Device Schema」として記載されている。
※仕様書のスキーマそのままだと、ComplexTypeとElementで名前衝突が発生し、jaxbでの取り扱いに不都合があった。

Server

デバイスのOS情報やUPNPのバージョン情報。

NT

検索対象の情報。M-SEARCHでデバイスを探すための条件に使用できる値。
形式が3パターンある。

upnp:rootdevice

ルートデバイスの情報であることを示す。

uuid:{デバイスのUUID}

  • デバイスのUUID
    デバイスを一意に検出するためのUUID。

urn:schemas-upnp-org:{種別}:{デバイス種別}:{バージョン}

  • 種別
    「device」「service」のいずれかがセットされている。デバイス、サービスの判別に使用。
  • デバイス種別
    デバイスの種類。
  • バージョン
    デバイスがサポートしているバージョン(最大値)。

urn:{ドメイン名}:{種別}:{デバイス種別}:{バージョン}

  • ドメイン名
    UPNPベンダーにより定義されたドメイン名。
  • 種別
    「device」「service」のいずれかがセットされている。デバイス、サービスの判別に使用。
  • デバイス種別
    デバイスの種類。
  • バージョン
    デバイスがサポートしているバージョン(最大値)。

USN

サービスを一意に特定するための名前。
以下の3種類の書式が存在する。

uuid:{デバイスUUID}::upnp:rootdevice

  • デバイスUUID
    デバイスを識別するためのUUID

uuid:デバイスUUID

  • デバイスUUID
    デバイスを識別するためのUUID

uuid:{デバイスUUID}::urn:schemas-upnp-org:{種別}:{デバイス種別}:{バージョン}

  • デバイスUUID
    デバイスを識別するためのUUID
  • 種別
    「device」「service」のいずれかがセットされている。デバイス、サービスの判別に使用。
  • デバイス種別
    デバイスの種類。
  • バージョン
    デバイスがサポートしているバージョン(最大値)。

uuid:{デバイスUUID}::urn:{ドメイン名}:{種別}:{デバイス種別}:{バージョン}

  • ドメイン名
    UPNPベンダーにより定義されたドメイン名。
  • デバイスUUID
    デバイスを識別するためのUUID
  • 種別
    「device」「service」のいずれかがセットされている。デバイス、サービスの判別に使用。
  • デバイス種別
    デバイスの種類。
  • バージョン
    デバイスがサポートしているバージョン(最大値)。

NTS

デバイスの状態。

  • ssdp:alive
    デバイスが生存している。
  • ssdp:byebye
    デバイスがネットワークから離脱するときに送信してくる。