⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc4661 an extensible markup language (xml)-based format for.txt

📁 有关IMS SIP及Presence应用的RFC文档包
💻 TXT
📖 第 1 页 / 共 4 页
字号:
RFC 4661             XML Based Format for Filtering       September 2006


       <what>
         <include type="xpath">
           /pidf:presence/pidf:tuple[rpid:class="IM" or rpid:class="SMS"
           or rpid:class="MMS"]/pidf:status/pidf:basic
         </include>
       </what>
     </filter>
   </filter-set>

6.2.  Filter Criteria Using <trigger> Element

   A user requires to be informed when his colleague becomes available
   by some communication means.  The user gets the full presence state
   of the colleague when a certain PIDF [13] tuple <basic> status
   changes from "closed" to "open".

   <?xml version="1.0" encoding="UTF-8"?>
   <filter-set xmlns="urn:ietf:params:xml:ns:simple-filter">
     <ns-bindings>
       <ns-binding prefix="pidf" urn="urn:ietf:params:xml:ns:pidf"/>
     </ns-bindings>
     <filter id="123" uri="sip:presentity@example.com">
       <trigger>
         <changed from="CLOSED" to="OPEN">
           /pidf:presence/pidf:tuple/pidf:status/pidf:basic
         </changed>
   </trigger>
   </filter>
   </filter-set>

6.3.  Filter Criteria Using <what> and <trigger> Elements

   A user wishes to get information about pending and waiting
   subscriptions in order to be able to authorise watchers to see his
   presence information.

   The filter selects watcher information notifications [16] to be sent
   when a subscription status has changed to "pending" or "waiting".  In
   the notification, only the watchers that have a status of "pending"
   or "waiting" are included.

   <?xml version="1.0" encoding="UTF-8"?>
   <filter-set xmlns="urn:ietf:params:xml:ns:simple-filter">
     <ns-bindings>
       <ns-binding prefix="wi"
                          urn="urn:ietf:params:xml:ns:watcherinfo"/>
     </ns-bindings>
     <filter id="123" uri="sip:presentity@example.com">



Khartabil, et al.           Standards Track                    [Page 13]

RFC 4661             XML Based Format for Filtering       September 2006


       <what>
         <include>
           /wi:watcherinfo/wi:watcher-list/wi:watcher[@status="pending"
           or @status="waiting"]
         </include>
       </what>
       <trigger>
         <changed to="pending">
           /wi:watcherinfo/wi:watcher-list/wi:watcher/@status
         </changed>
       </trigger>
       <trigger>
         <changed to="waiting">
           /wi:watcherinfo/wi:watcher-list/wi:watcher/@status
         </changed>
       </trigger>
     </filter>
   </filter-set>

6.4.  Content Filter Using Namespaces

   A user turns her terminal on, and the terminal automatically fetches
   general presence status and information about communication means
   from a certain pre-defined set of her buddies.

   The filter is defined to select XML elements belonging to the PIDF
   namespace.

   <?xml version="1.0" encoding="UTF-8"?>
   <filter-set xmlns="urn:ietf:params:xml:ns:simple-filter">
     <filter id="123" uri="sip:buddylist@example.com">
       <what>
         <include type="namespace">
           urn:ietf:params:xml:ns:pidf
         </include>
       </what>
     </filter>
   </filter-set>

6.5.  Content Filter Using Only <include> Elements

   A user wants to know if a group of his friends is available for
   gaming.  He orders notifications about the current status and future
   changes of the game-specific presence information.

   This filter is defined to select the game-specific tuple to be
   delivered.




Khartabil, et al.           Standards Track                    [Page 14]

RFC 4661             XML Based Format for Filtering       September 2006


   <?xml version="1.0" encoding="UTF-8"?>
   <filter-set xmlns="urn:ietf:params:xml:ns:simple-filter" >
     <ns-bindings>
       <ns-binding prefix="game-ext"
                          urn="urn:ietf:params:xml:ns:game-ext"/>
     </ns-bindings>
     <filter id="123">
       <what>
         <include>
           /pidf:presence/pidf:tuple/
           pidf:status[game-ext:label="game-X"]
         </include>
       </what>
     </filter>
   </filter-set>

6.6.  Two Content Filters as Filter Criteria

   The user is interested in getting up-to-date information about the
   communication means and contact addresses of his friends.  The user
   also wants to get more information (e.g., location) about one of the
   friends in the list, named Bob.  The PIDF element <note> is filtered
   out, i.e., excluded.  The list was predefined as buddies@example.com.

   <?xml version="1.0" encoding="UTF-8"?>
   <filter-set xmlns="urn:ietf:params:xml:ns:simple-filter">
     <ns-bindings>
       <ns-binding prefix="pidf" urn="urn:ietf:params:xml:ns:pidf"/>
       <ns-binding prefix="rpid"
                          urn="urn:ietf:params:xml:ns:pidf:rpid"/>
     </ns-bindings>
     <filter id="8439" uri="sip:buddies@example.com">
       <what>
         <include>
           /pidf:presence/pidf:tuple[rpid:class="service"]/pidf:status/
           pidf:basic
         </include>
       </what>
       </filter>
     <filter id="999" uri="sip:bob@example.com">
       <what>
         <include type="namespace">
           urn:ietf:params:xml:ns:pidf
         </include>
         <exclude>
           /pidf:presence/pidf:tuple/pidf:note
         </exclude>
       </what>



Khartabil, et al.           Standards Track                    [Page 15]

RFC 4661             XML Based Format for Filtering       September 2006


     </filter>
   </filter-set>

7.  XML Schema for Filter Criteria

   XML Schema Implementation (Normative)

   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema targetNamespace="urn:ietf:params:xml:ns:simple-filter"
          xmlns="urn:ietf:params:xml:ns:simple-filter"
          xmlns:xs="http://www.w3.org/2001/XMLSchema"
          elementFormDefault="qualified">

     <xs:import namespace="http://www.w3.org/XML/1998/namespace"
                      schemaLocation="http://www.w3.org/2001/xml.xsd"/>

     <xs:annotation>
       <xs:documentation xml:lang="en">
         XML Schema Definition for Filter Criteria.
       </xs:documentation>
     </xs:annotation>

     <xs:element name="filter-set" type="FilterSetType"/>

       <xs:complexType name="FilterSetType">
         <xs:sequence>
           <xs:element name="ns-bindings" type="NSBindings"
                               minOccurs="0" maxOccurs="1"/>
           <xs:element name="filter" type="FilterType"
                               minOccurs="1"
         maxOccurs="unbounded"/>
           </xs:sequence>
         <xs:attribute name="package" type="xs:string" use="optional"/>
         <xs:anyAttribute namespace="##other" processContents="lax"/>
       </xs:complexType>

     <xs:complexType name="NSBindings">
       <xs:sequence>
         <xs:element name="ns-binding" type="NSBinding"
                             minOccurs="1" maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:complexType>

     <xs:complexType name="NSBinding">
       <xs:attribute name="prefix" type="xs:string" use="required"/>
       <xs:attribute name="urn" type="xs:anyURI" use="required"/>
     </xs:complexType>




Khartabil, et al.           Standards Track                    [Page 16]

RFC 4661             XML Based Format for Filtering       September 2006


     <xs:complexType name="FilterType">
       <xs:sequence>
         <xs:element name="what" type="WhatType"
                             minOccurs="0" maxOccurs="1"/>
         <xs:element name="trigger" type="TriggerType"
                             minOccurs="0" maxOccurs="unbounded"/>
         <xs:any namespace="##other" processContents="lax"
                       minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="id"  type="xs:string" use="required"/>
       <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
       <xs:attribute name="domain" type="xs:string" use="optional"/>
       <xs:attribute name="remove" type="xs:boolean" use="optional"
                            default="false"/>
       <xs:attribute name="enabled" type="xs:boolean" use="optional"
                            default="true"/>
       <xs:anyAttribute namespace="##other" processContents="lax"/>
     </xs:complexType>

     <xs:complexType name="WhatType">
       <xs:sequence>
         <xs:element name="include" type="InclType"
                             minOccurs="0" maxOccurs="unbounded"/>
         <xs:element name="exclude" type="ExclType"
                             minOccurs="0" maxOccurs="unbounded"/>
         <xs:any namespace="##other" processContents="lax"
                       minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:complexType>

     <xs:complexType name="InclType">
       <xs:simpleContent>
         <xs:extension base="xs:string">
           <xs:attribute name="type" type="TypeType"
                                default="xpath" use="optional"/>
           <xs:anyAttribute namespace="##other" processContents="lax"/>
         </xs:extension>
       </xs:simpleContent>
     </xs:complexType>

     <xs:complexType name="ExclType">
       <xs:simpleContent>
         <xs:extension base="xs:string">
           <xs:attribute name="type" type="TypeType"
                                default="xpath" use="optional"/>
           <xs:anyAttribute namespace="##other" processContents="lax"/>
         </xs:extension>
       </xs:simpleContent>



Khartabil, et al.           Standards Track                    [Page 17]

RFC 4661             XML Based Format for Filtering       September 2006


   </xs:complexType>

     <xs:simpleType name="TypeType">
       <xs:restriction base="xs:string">
         <xs:enumeration value="xpath"/>
         <xs:enumeration value="namespace"/>
       </xs:restriction>
     </xs:simpleType>

     <xs:complexType name="TriggerType">
       <xs:sequence>
       <xs:element name="changed" type="ChangedType"
                           minOccurs="0" maxOccurs="unbounded"/>
       <xs:element name="added" type="xs:string"
                           minOccurs="0" maxOccurs="unbounded"/>
       <xs:element name="removed" type="xs:string"
                           minOccurs="0" maxOccurs="unbounded"/>
       <xs:any namespace="##other" processContents="lax"
                          minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:complexType>

     <xs:complexType name="ChangedType">
       <xs:simpleContent>
         <xs:extension base="xs:string">
           <xs:attribute name="from" type="xs:anySimpleType"
                                use="optional"/>
           <xs:attribute name="to" type="xs:anySimpleType"
                                use="optional"/>
           <xs:attribute name="by" type="xs:decimal"
                                use="optional"/>
           <xs:anyAttribute namespace="##other" processContents="lax"/>
         </xs:extension>
       </xs:simpleContent>
     </xs:complexType>

   </xs:schema>

8.  Security Considerations

   The filters in the body in a SIP message have a significant effect on
   the ways in which the request is handled at a server.  As a result,
   it is especially important that messages containing this extension be
   authenticated and authorised.  Authentication can be achieved using
   the Digest Authentication mechanism described in [12].  The
   authorisation decision is based on the permissions that the resource
   (notifier) has given to the watcher.  An example of such an
   auhorisation policy can be found in [18].



Khartabil, et al.           Standards Track                    [Page 18]

RFC 4661             XML Based Format for Filtering       September 2006

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -