美文网首页工作生活
UPnP交互网络包示例

UPnP交互网络包示例

作者: 云中的醉 | 来源:发表于2019-07-01 16:12 被阅读0次

    转载文章,原文链接

    1 概况

    1.1 基础协议

    • SOAP(Simple Object Access Protocol)
    • SSDP(Simple Service Discovery Protocol)
    • GENA(Generic Event Notification Architecture)
    • SCPD/DDD(Service Control Protocol Description)

    1.2 UPnP Device Architecture (UDA)

    1. Addressing : IP assignment on any network (AutoIP)
    2. Discovery : Of services/devices (SSDP)
    3. Description : Syntax for devices/services (SCPD/DDD)
    4. Control : Of device services (SOAP)
    5. Eventing : Updates of variables (GENA)
    6. Presentation : Access to device HTML page

    1.3 Device Control Protocols (DCPs)

    • APIs for various device functionality
    • Described using SCPD syntax and UDA protocols

    1.4 UPnP Architecture Diagram

    Standard Services           Device Control Protocols
    
    Common Architecture         3.Control; 4.Eventing; 5.Presentation
                                2.Description
                                1.Discovery
                                0.Addressing
    
    Base                        HTTP, XML, TCP, UDP, IP
    

    2 协议

    2.1 术语

    • NT (Notification Type)
    • NTS (Notification Sub Type)
    • USN (Unique Service Name)
    • UDN (Unique Device Name)
    • SID (Subscription IDentifier)

    2.2 发现(Discovery)

    2.2.1 Advertising

    多播内容:

    • 1 time / service type with NT == service type
    • 1 time / device type with NT == device type
    • 1 time / device with NT == device UUID
    • 1 time with NT == upnp:rootdevice

    如:

    NOTIFY * HTTP/1.1
    HOST: 239.255.255.250:1900
    CACHE-CONTROL: max-age = seconds until advertisement expires
    LOCATION: URL for UPnP description for root device
    NT: search target
    NTS: ssdp:alive
    USN: advertisement UUID
    

    2.2.2 Searching

    多播内容:

    • ST one of:
      • Service type, Device type, Device UUID
      • upnp:rootdevice
      • ssdp:all

    如:

    M-SEARCH * HTTP/1.1
    MX: 3
    MAN: "ssdp:discover"
    HOST: 239.255.255.250:1900
    ST: ssdp:all
    

    2.2.3 Responding

    单播内容:

    • 1 time for each NT that matches
    • Simple service name matching

    如:

    HTTP/1.1 200 OK
    Location: http://172.16.5.92:1074/
    Cache-Control: max-age=1800
    Server: UPnP/1.0 DLNADOC/1.50 Platinum/1.0.4.11
    EXT:
    USN: uuid:2b82a0e2-27b0-b245-80bd-8922a9494b47::upnp:rootdevice
    ST: upnp:rootdevice
    Date: Wed, 17 Feb 2016 09:41:57 GMT
    

    2.3 描述

    2.3.1 设备描述

    <root xmlns:dlna="urn:schemas-dlna-org:device-1-0"
        configid="2369201"
        xmlns="urn:schemas-upnp-org:device-1-0">
        <specversion>
            <major>1</major>
            <minor>1</minor>
        </specversion>
        <device> 
            <!-- 物理描述: -->
            <friendlyname>miketest platinum upnp media server</friendlyname>
            <manufacturer>plutinosoft</manufacturer>
            <manufacturerurl>http://www.plutinosoft.com/</manufacturerurl>
            <modeldescription>platinum file media server</modeldescription>
            <modelname>platinum file media server</modelname>
            <modelnumber>1.0</modelnumber>
            <modelurl>http://www.plutinosoft.com/</modelurl>
            <serialnumber>xxx</serialnumber>
            <udn>uuid:9081d7c5-7b76-a146-613c-b5188bc1bcb4</udn>
            <upc>universal product product code</upc> 
            <!-- 逻辑描述: -->
            <devicetype>urn:schemas-upnp-org:device:mediaserver:1</devicetype>
            <dlna:x_dlnadoc xmlns:dlna="urn:schemas-dlna-org:device-1-0">dms-1.50</dlna:x_dlnadoc>
            <servicelist>
                <service>
                    <servicetype>urn:schemas-upnp-org:service:contentdirectory:1</servicetype>
                    <serviceid>urn:upnp-org:serviceid:contentdirectory</serviceid>
                    <scpdurl>/contentdirectory/9081d7c5-7b76-a146-613c-b5188bc1bcb4/scpd.xml</scpdurl>
                    <controlurl>/contentdirectory/9081d7c5-7b76-a146-613c-b5188bc1bcb4/control.xml
                    </controlurl>
                    <eventsuburl>/contentdirectory/9081d7c5-7b76-a146-613c-b5188bc1bcb4/event.xml
                    </eventsuburl>
                </service>
                <service>
                    <servicetype>urn:schemas-upnp-org:service:connectionmanager:1</servicetype>
                    <serviceid>urn:upnp-org:serviceid:connectionmanager</serviceid>
                    <scpdurl>/connectionmanager/9081d7c5-7b76-a146-613c-b5188bc1bcb4/scpd.xml</scpdurl>
                    <controlurl>/connectionmanager/9081d7c5-7b76-a146-613c-b5188bc1bcb4/control.xml
                    </controlurl>
                    <eventsuburl>/connectionmanager/9081d7c5-7b76-a146-613c-b5188bc1bcb4/event.xml
                    </eventsuburl>
                </service>
            </servicelist> 
            <!-- 其他描述: -->
            <iconlist>
                <icon>
                    <mimetype>image/png</mimetype>
                    <width>72</width>
                    <height>72</height>
                    <depth>32</depth>
                    <url>/dev/9081d7c5-7b76-a146-613c-b5188bc1bcb4/icon.png</url>
                </icon>
            </iconlist>
            <presentationurl>url for presentation</presentationurl>
        </device>
    </root>
    

    上面是MediaServer, 所以serviceList中包括ContentDirectory, ConnectionManager两种服务. 如果是MediaRenderer, 则包括: AVTransport, ConnectionManager, RenderingControl几种服务.

    2.3.2 服务描述

    <!--?xml version="1.0" encoding="utf-8"?-->
    <scpd xmlns="urn:schemas-upnp-org:service-1-0">
        <specversion>
            <major>1</major>
            <minor>0</minor>
        </specversion> 
        <!-- 动作(action)描述: -->
        <actionlist>
            <action>
                <name>browse</name>
                <argumentlist>
                    <argument>
                        <name>objectid</name>
                        <direction>in</direction>
                        <relatedstatevariable>a_arg_type_objectid</relatedstatevariable>
                    </argument>
                    ...
                    <argument>
                        <name>result</name>
                        <direction>out</direction>
                        <relatedstatevariable>a_arg_type_result</relatedstatevariable>
                    </argument>
                    ...
                </argumentlist>
            </action>
            <action>
                <name>getsortcapabilities</name>
                <argumentlist>
                    <argument>
                        <name>sortcaps</name>
                        <direction>out</direction>
                        <relatedstatevariable>sortcapabilities</relatedstatevariable>
                    </argument>
                </argumentlist>
            </action>
            ...
        </actionlist> 
        <!-- 状态变量描述 -->
        <servicestatetable>
            <statevariable sendevents="no">
                <name>a_arg_type_browseflag</name>
                <datatype>string</datatype>
                <allowedvaluelist>
                    <allowedvalue>browsemetadata</allowedvalue>
                    <allowedvalue>browsedirectchildren</allowedvalue>
                </allowedvaluelist>
            </statevariable>
            <statevariable sendevents="yes">
                <name>systemupdateid</name>
                <datatype>ui4</datatype>
            </statevariable>
            ...
        </servicestatetable>
    </scpd>
    

    2.4 控制

    2.4.1 通用协议格式

    命令:

    POST path of control URL HTTP/1.1
    HOST: host of control URL:port of control URL
    CONTENT-LENGTH: bytes in body
    CONTENT-TYPE: text/xml; charset="utf-8"
    SOAPACTION: "urn:schemas-upnp-org:service:serviceType:v#actionName"
    
    <!--?xml version="1.0"?-->
    <s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
        s:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/">
        <s:body>
            <u:actionname xmlns:u="urn:schemas-upnp-org:service:serviceType:v">
                <argumentname>in arg value</argumentname>
                other in args and their values go here, if any
            </u:actionname>
        </s:body>
    </s:envelope>
    

    响应:

    HTTP/1.1 200 OK
    CONTENT-LENGTH: bytes in body
    CONTENT-TYPE: text/xml; charset="utf-8"
    DATE: when response was generated
    EXT:
    SERVER: OS/version UPnP/1.0 product/version
    
    <!--?xml version="1.0"?-->
    <s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
        s:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/">
        <s:body>
            <u:actionnameresponse xmlns:u="urn:schemas-upnp-org:service:serviceType:v">
                <argumentname>out arg value</argumentname>
                other out args and their values go here, if any
            </u:actionnameresponse>
        </s:body>
    </s:envelope>
    

    2.4.2 Browse

    2.4.2.1 浏览目录

    Action:

    POST /ContentDirectory/f1062579-d833-971e-8db8-76b28da5dc2d/control.xml HTTP/1.1
    SOAPAction: "urn:schemas-upnp-org:service:ContentDirectory:1#Browse"
    User-Agent: UPnP/1.0 DLNADOC/1.50 Platinum/1.0.5.13
    Host: 172.16.5.92:1873
    Content-Length: 571
    Content-Type: text/xml; charset="utf-8"
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
        s:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/">
        <s:body>
            <u:browse xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
                <objectid>0</objectid>
                <browseflag>BrowseDirectChildren</browseflag>
                <filter>dc:date,upnp:genre,res,res@duration,res@size,upnp:albumArtURI,\
                    upnp:album,upnp:artist,upnp:author,searchable,childCount
                </filter>
                <startingindex>0</startingindex>
                <requestedcount>30</requestedcount>
                <sortcriteria></sortcriteria>
            </u:browse>
        </s:body>
    </s:envelope>
    

    Response:

    HTTP/1.1 200 OK
    Ext:
    Date: Thu, 01 Jan 1970 16:56:28 GMT
    Content-Length: 1083
    Content-Type: text/xml; charset="utf-8"
    Server: UPnP/1.0 DLNADOC/1.50 Platinum/1.0.4.11
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
        s:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/">
        <s:body>
            <u:browseresponse xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
                <result>
                    <didl-lite xmlns:dc="http://purl.org/dc/elements/1.1/"
                        xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/"
                        xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
                        xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/">
                        <container
                            id="0/usb"
                            parentid="0"
                            restricted="1">
                            <dc:title>usb</dc:title>
                            <upnp:genre>Unknown</upnp:genre>
                            <upnp:class>object.container.storageFolder</upnp:class>
                        </container>
                        <container
                            id="0/LiveProgram"
                            parentid="0"
                            restricted="1">
                            <dc:title>LiveProgram</dc:title>
                            <upnp:genre>Unknown</upnp:genre>
                            <upnp:class>object.container.storageFolder</upnp:class>
                        </container>
                    </didl-lite>
                </result>
                <numberreturned>2</numberreturned>
                <totalmatches>2</totalmatches>
                <updateid>1</updateid>
            </u:browseresponse>
        </s:body>
    </s:envelope>
    

    2.4.2.2 浏览文件

    Action:

    POST /ContentDirectory/260ae85c-6cc5-4734-86ff-9f5753971493/control.xml HTTP/1.1
    SOAPAction: "urn:schemas-upnp-org:service:ContentDirectory:1#Browse"
    User-Agent: UPnP/1.0 DLNADOC/1.50 Platinum/1.0.5.13
    Host: 172.16.5.92:1135
    Content-Length: 585
    Content-Type: text/xml; charset="utf-8"
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
        s:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/">
        <s:body>
            <u:browse xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
                <objectid>0/usb/media/mp4</objectid>
                <browseflag>BrowseDirectChildren</browseflag>
                <filter>dc:date,upnp:genre,res,res@duration,res@size,upnp:albumArtURI,\
                    upnp:album,upnp:artist,upnp:author,searchable,childCount
                </filter>
                <startingindex>0</startingindex>
                <requestedcount>30</requestedcount>
                <sortcriteria></sortcriteria>
            </u:browse>
        </s:body>
    </s:envelope>
    

    Response:

    HTTP/1.1 200 OK
    Ext:
    Date: Thu, 01 Jan 1970 19:39:07 GMT
    Content-Length: 1567
    Content-Type: text/xml; charset="utf-8"
    Server: UPnP/1.0 DLNADOC/1.50 Platinum/1.0.4.11
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
        s:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/">
        <s:body>
            <u:browseresponse xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
                <result>
                    <didl-lite xmlns:dc="http://purl.org/dc/elements/1.1/"
                        xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/"
                        xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
                        xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/">
                        <item
                            id="0/usb/media/mp4/alan.mp4"
                            parentid="0/usb/media/mp4"
                            restricted="1">
                            <dc:title>alan</dc:title>
                            <upnp:genre>Unknown</upnp:genre>
                            <res
                                protocolinfo="http-get:*:video/mp4:DLNA.ORG_PN=MPEG4_P2_SP_AAC; \
                                    DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01500000000000000000000000000000"
                                size="37748317">
                                http://172.16.5.92:1135/usb/%25/media/mp4/alan.mp4
                            </res>
                            <upnp:class>object.item.videoItem</upnp:class>
                        </item>
                        <item
                            id="0/usb/media/mp4/avenger.mp4"
                            parentid="0/usb/media/mp4"
                            restricted="1">
                            <dc:title>avenger</dc:title>
                            <upnp:genre>Unknown</upnp:genre>
                            <res
                                protocolinfo="http-get:*:video/mp4:DLNA.ORG_PN=MPEG4_P2_SP_AAC; \
                                    DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01500000000000000000000000000000"
                                size="133090990">
                                http://172.16.5.92:1135/usb/%25/media/mp4/avenger.mp4
                            </res>
                            <upnp:class>object.item.videoItem</upnp:class>
                        </item>
                    </didl-lite>
                </result>
                <numberreturned>2</numberreturned>
                <totalmatches>2</totalmatches>
                <updateid>1</updateid>
            </u:browseresponse>
        </s:body>
    </s:envelope>
    

    2.4.3 SetAVTransportURI

    Action:

    POST /AVTransport/a9e91358-f1d3-8081-6700-657b903a4cdf/control.xml HTTP/1.1
    SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI"
    User-Agent: UPnP/1.0 DLNADOC/1.50 Platinum/1.0.5.13
    Host: 172.16.5.92:1146
    Content-Length: 1318
    Content-Type: text/xml; charset="utf-8"
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
        s:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/">
        <s:body>
            <u:setavtransporturi xmlns:u="urn:schemas-upnp-org:service:AVTransport:1">
                <instanceid>0</instanceid>
                <currenturi>
                    http://172.16.5.90:1191/%25/F378CB0AC0D9CF6C47F2E8675FF24DEF/buildings_alan.mp4
                </currenturi>
                <currenturimetadata>
                    <didl-lite xmlns:dc="http://purl.org/dc/elements/1.1/"
                        xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/"
                        xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
                        xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/">
                        <item
                            id="/media/f/avstream/mp4/buildings_alan.mp4"
                            parentid="/media/f/avstream/mp4/"
                            restricted="1">
                            <dc:title>buildings_alan</dc:title>
                            <dc:creator>Unknown</dc:creator>
                            <dc:date>2015-05-20T00:00:00Z</dc:date>
                            <upnp:genre>Unknown</upnp:genre>
                            <res
                                protocolinfo="http-get:*:video/mp4:DLNA.ORG_PN=MPEG4_P2_SP_AAC; \
                                    DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01500000000000000000000000000000"
                                size="136059975">
                                http://172.16.5.90:1191/%25/F378CB0AC0D9CF6C47F2E8675FF24DEF/buildings_alan.mp4
                            </res>
                            <upnp:class>object.item.videoItem</upnp:class>
                        </item>
                    </didl-lite>
                </currenturimetadata>
            </u:setavtransporturi>
        </s:body>
    </s:envelope>
    

    Response:

    HTTP/1.1 200 OK
    Ext:
    Date: Thu, 01 Jan 1970 21:03:21 GMT
    Content-Length: 277
    Content-Type: text/xml; charset="utf-8"
    Server: UPnP/1.0 DLNADOC/1.50 Platinum/1.0.4.11
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
        s:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/">
        <s:body>
            <u:setavtransporturiresponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"></u:setavtransporturiresponse>
        </s:body>
    </s:envelope>
    

    2.4.4 Play

    如下: i3/i21: ... 等行表示包发送的方向. 本例中172.16.5.90为CP, 172.16.5.92为Renderer,.

    • CP(.90)向Renderer(.92)发送Play命令:

      i3 : 172.16.5.90:52172 > 172.16.5.92:1146, len:594

    POST /AVTransport/a9e91358-f1d3-8081-6700-657b903a4cdf/control.xml HTTP/1.1
    SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#Play"
    User-Agent: UPnP/1.0 DLNADOC/1.50 Platinum/1.0.5.13
    Host: 172.16.5.92:1146
    Content-Length: 306
    Content-Type: text/xml; charset="utf-8"
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
        s:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/">
        <s:body>
            <u:play xmlns:u="urn:schemas-upnp-org:service:AVTransport:1">
                <instanceid>0</instanceid>
                <speed>1</speed>
            </u:play>
        </s:body>
    </s:envelope>
    
    • Renderer(.92)告知TRANSITIONING:

      i21 : 172.16.5.92:40036 > 172.16.5.90:1334, len:603

    NOTIFY /a9e91358-f1d3-8081-6700-657b903a4cdf/urn:upnp-org:serviceId:AVTransport HTTP/1.1
    NT: upnp:event
    NTS: upnp:propchange
    SID: uuid:db690087-714d-0ba5-fec8-7d19a4dbf60d
    SEQ: 2
    User-Agent: Neptune/1.1.3
    Host: 172.16.5.90:1334
    Content-Length: 324
    Content-Type: text/xml; charset="utf-8"
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
        <e:property>
            <lastchange>
                <event xmlns="urn:schemas-upnp-org:metadata-1-0/AVT/">
                    <instanceid val="0">
                        <transportstate val="TRANSITIONING"></transportstate>
                    </instanceid>
                </event>
            </lastchange>
        </e:property>
    </e:propertyset>
    
    i23   : 172.16.5.90:1334 > 172.16.5.92:40036, len:111
    
    HTTP/1.1 200 OK
    Date: Fri, 08 Apr 2016 03:55:19 GMT
    Content-Length: 0
    Server: UPnP/1.0 DLNADOC/1.50 Kodi
    
    • Renderer(.92)获取流内容:

      i487 : 172.16.5.92:43241 > 172.16.5.90:1191, len:191

    GET /%25/F378CB0AC0D9CF6C47F2E8675FF24DEF/buildings_alan.mp4 HTTP/1.1
    User-Agent: Lavf/57.25.100
    Accept: */*
    Range: bytes=0-
    Connection: close
    Host: 172.16.5.90:1191
    Icy-MetaData: 1
    
    
    GET /%25/F378CB0AC0D9CF6C47F2E8675FF24DEF/buildings_alan.mp4 HTTP/1.1
    ...
    
    • Renderer(.92)回复Play命令OK:

      i1550 : 172.16.5.92:1146 > 172.16.5.90:52172, len:442

    HTTP/1.1 200 OK
    Ext:
    Date: Thu, 01 Jan 1970 21:03:38 GMT
    Content-Length: 264
    Content-Type: text/xml; charset="utf-8"
    Server: UPnP/1.0 DLNADOC/1.50 Platinum/1.0.4.11
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
        s:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/">
        <s:body>
            <u:playresponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"></u:playresponse>
        </s:body>
    </s:envelope>
    
    • Renderer(.92)告知PLAYING:

      i1892 : 172.16.5.92:40036 > 172.16.5.90:1334, len:597

    NOTIFY /a9e91358-f1d3-8081-6700-657b903a4cdf/urn:upnp-org:serviceId:AVTransport HTTP/1.1
    NT: upnp:event
    NTS: upnp:propchange
    SID: uuid:db690087-714d-0ba5-fec8-7d19a4dbf60d
    SEQ: 3
    User-Agent: Neptune/1.1.3
    Host: 172.16.5.90:1334
    Content-Length: 318
    Content-Type: text/xml; charset="utf-8"
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
        <e:property>
            <lastchange>
                <event xmlns="urn:schemas-upnp-org:metadata-1-0/AVT/">
                    <instanceid val="0">
                        <transportstate val="PLAYING"></transportstate>
                    </instanceid>
                </event>
            </lastchange>
        </e:property>
    </e:propertyset>
    
    i1896 : 172.16.5.90:1334 > 172.16.5.92:40036, len:111
    
    HTTP/1.1 200 OK
    Date: Fri, 08 Apr 2016 03:55:20 GMT
    Content-Length: 0
    Server: UPnP/1.0 DLNADOC/1.50 Kodi
    
    • Renderer(.92)告知播放信息(时间等):

      i6976 : 172.16.5.92:40036 > 172.16.5.90:1334, len:693

    NOTIFY /a9e91358-f1d3-8081-6700-657b903a4cdf/urn:upnp-org:serviceId:AVTransport HTTP/1.1
    NT: upnp:event
    NTS: upnp:propchange
    SID: uuid:db690087-714d-0ba5-fec8-7d19a4dbf60d
    SEQ: 4
    User-Agent: Neptune/1.1.3
    Host: 172.16.5.90:1334
    Content-Length: 429
    Content-Type: text/xml; charset="utf-8"
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
        <e:property>
            <lastchange>
                <event xmlns="urn:schemas-upnp-org:metadata-1-0/AVT/">
                    <instanceid val="0">
                        <numberoftracks val="1">
                            <currenttrack val="1">
                                <currenttrackduration val="00:04:45">
                                    <currentmediaduration val="00:04:45"></currentmediaduration>
                                </currenttrackduration>
                            </currenttrack>
                        </numberoftracks>
                    </instanceid>
                </event>
            </lastchange>
        </e:property>
    </e:propertyset>
    
    i6980 : 172.16.5.90:1334 > 172.16.5.92:40036, len:111
    
    HTTP/1.1 200 OK
    Date: Fri, 08 Apr 2016 03:55:21 GMT
    Content-Length: 0
    Server: UPnP/1.0 DLNADOC/1.50 Kodi
    ...
    

    2.5 事件

    2.5.1 通用协议格式

    订阅(Subscribing):

    SUBSCRIBE publisher path HTTP/1.1
    HOST: publisher host:publisher port
    CALLBACK: <delivery URL>
    NT: upnp:event
    TIMEOUT: Second-requested subscription duration
    

    响应Response:

    HTTP/1.1 200 OK
    DATE: when response was generated
    SERVER: OS/version UPnP/1.0 product/version
    SID: uuid:subscription-UUID
    TIMEOUT: Second-actual subscription duration
    
    • SID: Required. Subscription identifier. Must be the subscription identifier assigned by publisher in response to subscription request. Must be universally unique. Must begin with uuid:. Defined by UPnP vendor. Single URI.

    事件通知(Eventing):

    NOTIFY delivery path HTTP/1.1
    HOST: delivery host:delivery port
    CONTENT-TYPE: text/xml
    CONTENT-LENGTH: Bytes in body
    NT: upnp:event
    NTS: upnp:propchange
    SID: uuid:subscription-UUID
    SEQ: event key
    
    <!--?xml version="1.0"?-->
    <e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
        <e:property>
            <variablename>new value</variablename>
        </e:property>
        Other variable names and values (if any) go here.
    </e:propertyset>
    
    • NT: Required. Notification Type. Must be upnp:event.
    • NTS: Required. Notification Sub Type. Must be upnp:propchange.
    • SEQ: Required. Event key. Must be 0 for initial event message. Must be incremented by 1 for each event message sent to a particular subscriber. To prevent overflow, must be wrapped from 4294967295to 1. 32-bit unsigned value represented as a single decimal integer without leading zeroes (some implementations may include leading zeroes, which should be ignored by the recipient).

    取消订阅:

    UNSUBSCRIBE publisher path HTTP/1.1
    HOST: publisher host:publisher port
    SID: uuid:subscription UUID
    

    2.5.2 订阅(Subscribing)/事件通知(Eventing)示例

    2.5.2.1 AVTransport

    Subscribing:

    SUBSCRIBE /AVTransport/a44792d5-e283-2b1c-d4b7-0a1d06f5df27/event.xml HTTP/1.1
    NT: upnp:event
    CALLBACK: <http://172.16.5.90:1306/a44792d5-e283-2b1c-d4b7-0a1d06f5df27/urn:upnp-org:serviceId:AVTransport>
    TIMEOUT: Second-1800
    User-Agent: UPnP/1.0 DLNADOC/1.50 Kodi
    Host: 172.16.5.92:1153
    

    Response:

    HTTP/1.1 200 OK
    SID: uuid:fb5c0474-782f-b216-3cdd-c161d69d8dc6
    TIMEOUT: Second-1800
    Date: Wed, 13 Apr 2016 06:09:58 GMT
    Content-Length: 0
    Server: UPnP/1.0 DLNADOC/1.50 Platinum/1.0.4.11
    

    Eventing(起始播放时):

    NOTIFY /a44792d5-e283-2b1c-d4b7-0a1d06f5df27/urn:upnp-org:serviceId:AVTransport HTTP/1.1
    NT: upnp:event
    NTS: upnp:propchange
    SID: uuid:fb5c0474-782f-b216-3cdd-c161d69d8dc6
    SEQ: 0
    User-Agent: Neptune/1.1.3
    Host: 172.16.5.90:1306
    Content-Length: 3500
    Content-Type: text/xml; charset="utf-8"
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
        <e:property>
            <lastchange>
                <event xmlns="urn:schemas-upnp-org:metadata-1-0/AVT/">
                    <instanceid val="0">
                        <currentplaymode val="NORMAL">
                            <recordstoragemedium val="NOT_IMPLEMENTED">
                                <currenttrackuri val="">
                                    <currenttrackduration val="00:00:00">
                                        <currentrecordqualitymode val="NOT_IMPLEMENTED">
                                            <currentmediaduration val="00:00:00">
                                                <avtransporturi val="http://172.16.5.90:1191/%25/417D1D61A0DABEAADBADAC3C6806B811/amazing_spider_man_2.mp4">
                                                    <transportstate val="STOPPED">
                                                        <currenttrackmetadata val="">
                                                            <nextavtransporturi val="">
                                                                <possiblerecordqualitymodes val="NOT_IMPLEMENTED">
                                                                    <currenttrack val="0">
                                                                        <nextavtransporturimetadata val="">
                                                                            <playbackstoragemedium val="NONE">
                                                                                <currenttransportactions val="Play,Pause,Stop,Seek,Next,Previous">
                                                                                    <recordmediumwritestatus val="NOT_IMPLEMENTED">
                                                                                        <possibleplaybackstoragemedia val="NONE,NETWORK,HDD,CD-DA,UNKNOWN">
                                                                                            <avtransporturimetadata val="&lt;DIDL-Lite
                                xmlns=&quot;urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/&quot;
                                xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot;
                                xmlns:upnp=&quot;urn:schemas-upnp-org:metadata-1-0/upnp/&quot;
                                xmlns:dlna=&quot;urn:schemas-dlna-org:metadata-1-0/&quot;
                                xmlns:sec=&quot;http://www.sec.co.kr/&quot;
                                xmlns:xbmc=&quot;urn:schemas-xbmc-org:metadata-1-0/&quot;>&lt;item
                                id=&quot;/media/f/avstream/mp4/amazing_spider_man_2.mp4&quot;
                                parentID=&quot;&quot;
                                restricted=&quot;1&quot;>&lt;dc:title>amazing_spider_man_2&lt;/dc:title>&lt;dc:creator>Unknown&lt;/dc:creator>&lt;dc:date>2014-09-04&lt;/dc:date>&lt;dc:publisher>Unknown&lt;/dc:publisher>&lt;upnp:genre>Unknown&lt;/upnp:genre>&lt;upnp:albumArtURI
                                dlna:profileID=&quot;JPEG_TN&quot;>http://172.16.5.90:1191/%25/849BE949E91D458B577B57B2075DD85D/amazing_spider_man_2.mp4&lt;/upnp:albumArtURI>&lt;upnp:lastPlaybackTime>1601-01-01T00:00:00+21:36&lt;/upnp:lastPlaybackTime>&lt;upnp:playbackCount>0&lt;/upnp:playbackCount>&lt;upnp:episodeSeason>0&lt;/upnp:episodeSeason>&lt;res
                                duration=&quot;2:21:34.000&quot; size=&quot;1425378294&quot;
                                resolution=&quot;1280x720&quot;
                                protocolInfo=&quot;http-get:*:video/mp4:DLNA.ORG_PN=MPEG4_P2_SP_AAC;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01500000000000000000000000000000&quot;>http://172.16.5.90:1191/%25/417D1D61A0DABEAADBADAC3C6806B811/amazing_spider_man_2.mp4&lt;/res>&lt;res
                                protocolInfo=&quot;xbmc.org:*:thumb:*&quot;>http://172.16.5.90:1191/%25/849BE949E91D458B577B57B2075DD85D/amazing_spider_man_2.mp4&lt;/res>&lt;xbmc:dateadded>1601-01-01&lt;/xbmc:dateadded>&lt;xbmc:rating>0.0&lt;/xbmc:rating>&lt;xbmc:artwork
                                type=&quot;thumb&quot;>http://172.16.5.90:1191/%25/849BE949E91D458B577B57B2075DD85D/amazing_spider_man_2.mp4&lt;/xbmc:artwork>&lt;upnp:class>object.item.videoItem&lt;/upnp:class>&lt;/item>&lt;/DIDL-Lite>">
                                                                                                <numberoftracks val="0">
                                                                                                    <possiblerecordstoragemedia val="NOT_IMPLEMENTED">
                                                                                                        <transportstatus val="OK">
                                                                                                            <transportplayspeed val="1"></transportplayspeed>
                                                                                                        </transportstatus>
                                                                                                    </possiblerecordstoragemedia>
                                                                                                </numberoftracks>
                                                                                            </avtransporturimetadata>
                                                                                        </possibleplaybackstoragemedia>
                                                                                    </recordmediumwritestatus>
                                                                                </currenttransportactions>
                                                                            </playbackstoragemedium>
                                                                        </nextavtransporturimetadata>
                                                                    </currenttrack>
                                                                </possiblerecordqualitymodes>
                                                            </nextavtransporturi>
                                                        </currenttrackmetadata>
                                                    </transportstate>
                                                </avtransporturi>
                                            </currentmediaduration>
                                        </currentrecordqualitymode>
                                    </currenttrackduration>
                                </currenttrackuri>
                            </recordstoragemedium>
                        </currentplaymode>
                    </instanceid>
                </event>
            </lastchange>
        </e:property>
    </e:propertyset>
    

    Response:

    HTTP/1.1 200 OK
    Date: Wed, 13 Apr 2016 06:09:43 GMT
    Content-Length: 0
    Server: UPnP/1.0 DLNADOC/1.50 Kodi
    

    Eventing(TRANSITIONING):

    NOTIFY /a44792d5-e283-2b1c-d4b7-0a1d06f5df27/urn:upnp-org:serviceId:AVTransport HTTP/1.1
    NT: upnp:event
    NTS: upnp:propchange
    SID: uuid:fb5c0474-782f-b216-3cdd-c161d69d8dc6
    SEQ: 1
    User-Agent: Neptune/1.1.3
    Host: 172.16.5.90:1306
    Content-Length: 2534
    Content-Type: text/xml; charset="utf-8"
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
        <e:property>
            <lastchange>
                <event xmlns="urn:schemas-upnp-org:metadata-1-0/AVT/">
                    <instanceid val="0">
                        <avtransporturi val="http://172.16.5.90:1191/%25/FD5D04760DCC122162D0CDEA0FECD3B3/alan.mp4">
                            <avtransporturimetadata val="&lt;DIDL-Lite
                                xmlns=&quot;urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/&quot;
                                xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot;
                                xmlns:upnp=&quot;urn:schemas-upnp-org:metadata-1-0/upnp/&quot;
                                xmlns:dlna=&quot;urn:schemas-dlna-org:metadata-1-0/&quot;
                                xmlns:sec=&quot;http://www.sec.co.kr/&quot;
                                xmlns:xbmc=&quot;urn:schemas-xbmc-org:metadata-1-0/&quot;>&lt;item
                                id=&quot;/media/f/avstream/mp4/alan.mp4&quot;
                                parentID=&quot;&quot;
                                restricted=&quot;1&quot;>&lt;dc:title>alan&lt;/dc:title>&lt;dc:creator>Unknown&lt;/dc:creator>&lt;dc:date>2013-01-07&lt;/dc:date>&lt;dc:publisher>Unknown&lt;/dc:publisher>&lt;upnp:genre>Unknown&lt;/upnp:genre>&lt;upnp:albumArtURI
                                dlna:profileID=&quot;JPEG_TN&quot;>http://172.16.5.90:1191/%25/73D7D987DD67085B244D64E912BE8C6C/alan.mp4&lt;/upnp:albumArtURI>&lt;upnp:lastPlaybackTime>2016-02-24T18:12:53+21:36&lt;/upnp:lastPlaybackTime>&lt;upnp:playbackCount>0&lt;/upnp:playbackCount>&lt;upnp:episodeSeason>0&lt;/upnp:episodeSeason>&lt;res
                                duration=&quot;0:02:33.000&quot; size=&quot;37748317&quot;
                                resolution=&quot;720x480&quot;
                                protocolInfo=&quot;http-get:*:video/mp4:DLNA.ORG_PN=MPEG4_P2_SP_AAC;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01500000000000000000000000000000&quot;>http://172.16.5.90:1191/%25/FD5D04760DCC122162D0CDEA0FECD3B3/alan.mp4&lt;/res>&lt;res
                                protocolInfo=&quot;xbmc.org:*:thumb:*&quot;>http://172.16.5.90:1191/%25/73D7D987DD67085B244D64E912BE8C6C/alan.mp4&lt;/res>&lt;xbmc:dateadded>1601-01-01&lt;/xbmc:dateadded>&lt;xbmc:rating>0.0&lt;/xbmc:rating>&lt;xbmc:artwork
                                type=&quot;thumb&quot;>http://172.16.5.90:1191/%25/73D7D987DD67085B244D64E912BE8C6C/alan.mp4&lt;/xbmc:artwork>&lt;upnp:class>object.item.videoItem&lt;/upnp:class>&lt;/item>&lt;/DIDL-Lite>">
                                <transportstate val="TRANSITIONING"></transportstate>
                            </avtransporturimetadata>
                        </avtransporturi>
                    </instanceid>
                </event>
            </lastchange>
        </e:property>
    </e:propertyset>
    

    Response:

    HTTP/1.1 200 OK
    Date: Wed, 13 Apr 2016 06:09:59 GMT
    Content-Length: 0
    Server: UPnP/1.0 DLNADOC/1.50 Kodi
    

    Eventing(PLAYING):

    NOTIFY /a44792d5-e283-2b1c-d4b7-0a1d06f5df27/urn:upnp-org:serviceId:AVTransport HTTP/1.1
    NT: upnp:event
    NTS: upnp:propchange
    SID: uuid:fb5c0474-782f-b216-3cdd-c161d69d8dc6
    SEQ: 2
    User-Agent: Neptune/1.1.3
    Host: 172.16.5.90:1306
    Content-Length: 318
    Content-Type: text/xml; charset="utf-8"
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
        <e:property>
            <lastchange>
                <event xmlns="urn:schemas-upnp-org:metadata-1-0/AVT/">
                    <instanceid val="0">
                        <transportstate val="PLAYING"></transportstate>
                    </instanceid>
                </event>
            </lastchange>
        </e:property>
    </e:propertyset>
    

    Response:

    HTTP/1.1 200 OK
    Date: Wed, 13 Apr 2016 06:10:00 GMT
    Content-Length: 0
    Server: UPnP/1.0 DLNADOC/1.50 Kodi
    

    Eventing(STOPPED):

    NOTIFY /a44792d5-e283-2b1c-d4b7-0a1d06f5df27/urn:upnp-org:serviceId:AVTransport HTTP/1.1
    NT: upnp:event
    NTS: upnp:propchange
    SID: uuid:fb5c0474-782f-b216-3cdd-c161d69d8dc6
    SEQ: 4
    User-Agent: Neptune/1.1.3
    Host: 172.16.5.90:1306
    Content-Length: 466
    Content-Type: text/xml; charset="utf-8"
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
        <e:property>
            <lastchange>
                <event xmlns="urn:schemas-upnp-org:metadata-1-0/AVT/">
                    <instanceid val="0">
                        <transportstate val="STOPPED">
                            <numberoftracks val="0">
                                <currenttrack val="0">
                                    <currenttrackduration val="00:00:00">
                                        <currentmediaduration val="00:00:00"></currentmediaduration>
                                    </currenttrackduration>
                                </currenttrack>
                            </numberoftracks>
                        </transportstate>
                    </instanceid>
                </event>
            </lastchange>
        </e:property>
    </e:propertyset>
    

    Response:

    2.5.2.2 ConnectionManager

    Subscribing:

    SUBSCRIBE /ConnectionManager/a44792d5-e283-2b1c-d4b7-0a1d06f5df27/event.xml HTTP/1.1
    NT: upnp:event
    CALLBACK: <http://172.16.5.90:1306/a44792d5-e283-2b1c-d4b7-0a1d06f5df27/urn:upnp-org:serviceId:ConnectionManager>
    TIMEOUT: Second-1800
    User-Agent: UPnP/1.0 DLNADOC/1.50 Kodi
    Host: 172.16.5.92:1153
    

    Response:

    HTTP/1.1 200 OK
    SID: uuid:0c8245e4-a6b8-5a5d-d7f3-e2004bca123f
    TIMEOUT: Second-1800
    Date: Wed, 13 Apr 2016 06:09:58 GMT
    Content-Length: 0
    Server: UPnP/1.0 DLNADOC/1.50 Platinum/1.0.4.11
    

    Eventing:

    NOTIFY /a44792d5-e283-2b1c-d4b7-0a1d06f5df27/urn:upnp-org:serviceId:ConnectionManager HTTP/1.1
    NT: upnp:event
    NTS: upnp:propchange
    SID: uuid:0c8245e4-a6b8-5a5d-d7f3-e2004bca123f
    SEQ: 0
    User-Agent: Neptune/1.1.3
    Host: 172.16.5.90:1306
    Content-Length: 2929
    Content-Type: text/xml; charset="utf-8"
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
        <e:property>
            <sourceprotocolinfo>
            </sourceprotocolinfo>
        </e:property>
        <e:property>
            <sinkprotocolinfo>http-get:*:video/mp4:DLNA.ORG_PN=MPEG4_P2_SP_AAC,
                    http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_BL_L3L_SD_AAC,
                    http-get:*:video/x-ms-asf:DLNA.ORG_PN=MPEG4_P2_ASF_ASP_L4_SO_G726,
                    http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVMED_PRO,
                    http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_TN,
                    http-get:*:audio/x-ms-wma:DLNA.ORG_PN=WMAFULL,
                    http-get:*:video/x-ms-asf:DLNA.ORG_PN=VC1_ASF_AP_L1_WMA,
                    http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM,
                    http-get:*:audio/L16;rate=44100;channels=2:DLNA.ORG_PN=LPCM,
                    http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVMED_BASE,
                    http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVSPML_MP3,
                    http-get:*:audio/x-ms-wma:DLNA.ORG_PN=WMABASE,
                    http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_PAL,
                    http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVHIGH_FULL,
                    http-get:*:image/png:DLNA.ORG_PN=PNG_LRG,
                    http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_PAL_XAC3,
                    http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_MP_HD_1080i_AAC,
                    http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_MED,
                    http-get:*:video/x-ms-asf:DLNA.ORG_PN=MPEG4_P2_ASF_SP_G726,
                    http-get:*:audio/L16;rate=48000;channels=2:DLNA.ORG_PN=LPCM,
                    http-get:*:audio/mpeg:DLNA.ORG_PN=MP3,
                    http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVHIGH_PRO,
                    http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_HP_HD_AAC,
                    http-get:*:audio/mpeg:DLNA.ORG_PN=MP3X,
                    http-get:*:video/x-ms-asf:DLNA.ORG_PN=MPEG4_P2_ASF_ASP_L5_SO_G726,
                    http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVSPLL_BASE,
                    http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC,
                    http-get:*:video/mpeg:DLNA.ORG_PN=MPEG1,
                    http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVSPML_BASE,
                    http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVMED_FULL,
                    http-get:*:audio/x-ms-wma:DLNA.ORG_PN=WMAPRO,
                    http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG,
                    http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC_XAC3,
                    http-get:*:audio/L16;rate=44100;channels=1:DLNA.ORG_PN=LPCM,
                    http-get:*:image/x-ycbcr-yuv420:*,
                    http-get:*:video/x-ms-wmv:*,
                    http-get:*:audio/x-ms-wma:*,
                    http-get:*:video/mp4:*,
                    http-get:*:video/avi:*,
                    http-get:*:video/quicktime:*,
                    http-get:*:video/wtv:*,
                    rtsp-rtp-udp:*:video/x-ms-asf:DLNA.ORG_PN=MPEG4_P2_ASF_SP_G726,
                    rtsp-rtp-udp:*:video/x-ms-wmv:DLNA.ORG_PN=WMVMED_PRO,
                    rtsp-rtp-udp:*:video/x-ms-asf:DLNA.ORG_PN=MPEG4_P2_ASF_ASP_L5_SO_G726,
                    rtsp-rtp-udp:*:video/x-ms-asf:DLNA.ORG_PN=MPEG4_P2_ASF_ASP_L4_SO_G726,
                    rtsp-rtp-udp:*:video/x-ms-wmv:DLNA.ORG_PN=WMVSPLL_BASE,
                    rtsp-rtp-udp:*:video/x-ms-wmv:DLNA.ORG_PN=WMVSPML_BASE,
                    rtsp-rtp-udp:*:video/x-ms-wmv:DLNA.ORG_PN=WMVHIGH_PRO,
                    rtsp-rtp-udp:*:video/x-ms-wmv:DLNA.ORG_PN=WMVMED_FULL,
                    rtsp-rtp-udp:*:video/x-ms-asf:DLNA.ORG_PN=VC1_ASF_AP_L1_WMA,
                    rtsp-rtp-udp:*:video/x-ms-wmv:DLNA.ORG_PN=WMVMED_BASE,
                    rtsp-rtp-udp:*:video/x-ms-wmv:DLNA.ORG_PN=WMVHIGH_FULL,
                    rtsp-rtp-udp:*:video/x-ms-wmv:DLNA.ORG_PN=WMVSPML_MP3,
                    rtsp-rtp-udp:*:video/x-ms-wmv:*</sinkprotocolinfo>
        </e:property>
        <e:property>
            <currentconnectionids>0</currentconnectionids>
        </e:property>
    </e:propertyset>
    i112  : 172.16.5.92:1153 > 172.16.5.90:51264, len:194
    HTTP/1.1 200 OK
    SID: uuid:57b029f1-db42-1aa4-d9a4-d8275d513f18
    TIMEOUT: Second-1800
    Date: Wed, 13 Apr 2016 06:09:58 GMT
    Content-Length: 0
    Server: UPnP/1.0 DLNADOC/1.50 Platinum/1.0.4.11
    

    Response:

    HTTP/1.1 200 OK
    Date: Wed, 13 Apr 2016 06:09:43 GMT
    Content-Length: 0
    Server: UPnP/1.0 DLNADOC/1.50 Kodi
    

    2.5.2.3 RenderingControl

    Subscribing:

    SUBSCRIBE /RenderingControl/a44792d5-e283-2b1c-d4b7-0a1d06f5df27/event.xml HTTP/1.1
    NT: upnp:event
    CALLBACK: <http://172.16.5.90:1306/a44792d5-e283-2b1c-d4b7-0a1d06f5df27/urn:upnp-org:serviceId:RenderingControl>
    TIMEOUT: Second-1800
    User-Agent: UPnP/1.0 DLNADOC/1.50 Kodi
    Host: 172.16.5.92:1153
    

    Response:

    HTTP/1.1 200 OK
    SID: uuid:57b029f1-db42-1aa4-d9a4-d8275d513f18
    TIMEOUT: Second-1800
    Date: Wed, 13 Apr 2016 06:09:58 GMT
    Content-Length: 0
    Server: UPnP/1.0 DLNADOC/1.50 Platinum/1.0.4.11
    

    Eventing:

    NOTIFY /a44792d5-e283-2b1c-d4b7-0a1d06f5df27/urn:upnp-org:serviceId:RenderingControl HTTP/1.1
    NT: upnp:event
    NTS: upnp:propchange
    SID: uuid:57b029f1-db42-1aa4-d9a4-d8275d513f18
    SEQ: 0
    User-Agent: Neptune/1.1.3
    Host: 172.16.5.90:1306
    Content-Length: 448
    Content-Type: text/xml; charset="utf-8"
    
    <!--?xml version="1.0" encoding="UTF-8"?-->
    <e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
        <e:property>
            <lastchange>
                <event xmlns="urn:schemas-upnp-org:metadata-1-0/RCS/">
                    <instanceid val="0">
                        <volume
                            channel="Master"
                            val="100">
                            <mute
                                channel="Master"
                                val="0">
                                <presetnamelist val="FactoryDefaults">
                                    <volumedb
                                        channel="Master"
                                        val="0"></volumedb>
                                </presetnamelist>
                            </mute>
                        </volume>
                    </instanceid>
                </event>
            </lastchange>
        </e:property>
    </e:propertyset>
    

    Response:

    HTTP/1.1 200 OK
    Date: Wed, 13 Apr 2016 06:09:43 GMT
    Content-Length: 0
    Server: UPnP/1.0 DLNADOC/1.50 Kodi
    

    相关文章

      网友评论

        本文标题:UPnP交互网络包示例

        本文链接:https://www.haomeiwen.com/subject/gbtncctx.html