6.5 Microsoft Skype for Business Server Schema

This section follows the product behavior described in footnote <318>. The schema has been split into four related schema definition files:

  • ms-rtcp-metrics.xsd

  • ms-rtcp-metrics.medialine.xsd

  • ms-rtcp-metrics.v2.xsd

  • ms-rtcp-metrics.v3.xsd

  • ms-rtcp-metrics.v4.xsd

Additionally, a new schema has been introduced:

  • ms-cqf.xsd

The schema for ms-rtcp-metrics.xsd is as follows:

 <?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:tns="ms-rtcp-metrics" xmlns:v2="ms-rtcp-metrics.v2" xmlns:v3="ms-rtcp-metrics.v3" xmlns:v4="ms-rtcp-metrics.v4" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="ms-rtcp-metrics" elementFormDefault="qualified" version="1.2" attributeFormDefault="unqualified">  
   <xs:import namespace="ms-rtcp-metrics.v2"></xs:import>
   <xs:import namespace="ms-rtcp-metrics.v3"></xs:import>
   <xs:import namespace="ms-rtcp-metrics.v4"></xs:import>
   <xs:include schemaLocation="ms-rtcp-metrics.medialine.xsd"></xs:include>
   <!--    
      RTCP METRICS STATEMENT
    -->
   <xs:element name="VQReportEvent" type="tns:VQReportEventType"/>
   <!--
      RTCP REPORT TYPE
    -->
   <xs:complexType name="VQReportEventType">
     <xs:choice>
       <xs:element name="VQSessionReport" type="tns:SessionReportType" maxOccurs="unbounded"/>
       <xs:element name="VQSessionIntervalReport" type="tns:SessionReportType" maxOccurs="unbounded"/>
       <xs:any namespace="##other" processContents="lax" maxOccurs="unbounded"/>
     </xs:choice>
     <xs:attribute name="Version" type="xs:string" use="optional"/>
     <xs:attribute ref="v2:SchemaVersion" use="optional"/>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      VQ SESSION REPORT TYPE
    -->
   <xs:complexType name="SessionReportType">
     <xs:sequence>
       <xs:element name="LocationProfile" type="xs:string" minOccurs="0"/>
       <xs:element name="Pool" type="xs:string" minOccurs="0"/>
       <xs:element name="Endpoint" type="tns:EndpointType"/>
       <xs:element name="DialogInfo" type="tns:DialogInfoType"/>
       <xs:element name="MediaLine" type="tns:MediaLineType" minOccurs="1" maxOccurs="unbounded"/>
       <xs:element ref="v2:OpaqueClientPlatformData" minOccurs="0" />
       <xs:element ref="v2:OpaqueServerPlatformData" minOccurs="0" />
       <xs:element ref="v2:OpaqueConferenceData" minOccurs="0" />
       <xs:sequence minOccurs="0">
         <xs:element ref="v2:Separator" />
         <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:sequence>
     <xs:attribute name="SessionId" type="xs:string" use="required"/>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
     <!--  SessionId = DialogID  -->
   </xs:complexType>
   <!--
      DIALOG INFO TYPE
    -->
   <xs:complexType name="DialogInfoType">
     <xs:sequence>
       <xs:element name="DialogCategory" type="tns:DialogCategoryType" minOccurs="0"/>
       <xs:element name="CorrelationID" type="xs:string" minOccurs="0"/>
       <xs:element name="FromURI" type="xs:anyURI"/>
       <xs:element name="ToURI" type="xs:anyURI"/>
       <xs:element name="Caller" type="xs:boolean"/>
       <xs:element name="LocalContactURI" type="xs:anyURI"/>
       <xs:element name="RemoteContactURI" type="xs:anyURI"/>
       <xs:element name="LocalUserAgent" type="xs:string"/>
       <xs:element name="RemoteUserAgent" type="xs:string"/>
       <!-- PAI = P-Asserted-Identity  -->
       <xs:element name="LocalPAI" type="xs:anyURI" minOccurs="0"/>
       <xs:element name="RemotePAI" type="xs:anyURI" minOccurs="0"/>
       <xs:element name="ConfURI" type="xs:anyURI" minOccurs="0"/>
       <xs:element ref="v2:CallPriority" minOccurs="0"/>
       <xs:element ref="v2:MediationServerBypassFlag" minOccurs="0"/>
       <xs:element ref="v2:TrunkingPeer" minOccurs="0"/>
       <xs:element ref="v2:MediaBypassWarningFlag" minOccurs="0"/>
       <xs:sequence minOccurs="0">
         <xs:element ref="v2:Separator" />
         <xs:element ref="v2:RegisteredInside" minOccurs="0"/>
         <xs:sequence minOccurs="0">
           <xs:element ref="v2:Separator" />
           <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
       </xs:sequence>
     </xs:sequence>
     <xs:attribute name="CallId" type="xs:string" use="required"/>
     <xs:attribute name="FromTag" type="xs:string" use="required"/>
     <xs:attribute name="ToTag" type="xs:string" use="required"/>
     <xs:attribute name="Start" type="xs:dateTime" use="required"/>
     <xs:attribute name="End" type="xs:dateTime" use="required"/>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
  
 <!--
       DIALOG CATEGORY
   -->
   <xs:simpleType name ="DialogCategoryType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="OCS"/>
      <xs:enumeration value="TRUNK"/>
    </xs:restriction>
   </xs:simpleType>
 </xs:schema>

The schema for ms-rtcp-metrics.medialine.xsd is as follows:

 <?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:tns="ms-rtcp-metrics" xmlns:v2="ms-rtcp-metrics.v2" xmlns:v3="ms-rtcp-metrics.v3" xmlns:v4="ms-rtcp-metrics.v4" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="ms-rtcp-metrics" elementFormDefault="qualified" version="2.0" attributeFormDefault="unqualified">
   <xs:import namespace="ms-rtcp-metrics.v2"></xs:import>
   <xs:import namespace="ms-rtcp-metrics.v3"></xs:import>
   <xs:import namespace="ms-rtcp-metrics.v4"></xs:import>
   <!--
      MEDIA LINE REPORT TYPE
    -->
   <xs:complexType name="MediaLineType">
     <xs:sequence>
       <xs:element name="Description" type="tns:MediaLineDescriptionType"/>
       <xs:element name="InboundStream" type="tns:StreamType" minOccurs="0"/>
       <xs:element name="OutboundStream" type="tns:StreamType" minOccurs="0"/>
       <xs:element name="LocalConversationalMOS" type="xs:float" minOccurs="0"/>
       <xs:element name="RemoteConversationalMOS" type="xs:float" minOccurs="0"/>
       <xs:element name="LocalConversationalMOSAlg" type="xs:string" minOccurs="0"/>
       <xs:element name="RemoteConversationalMOSAlg" type="xs:string" minOccurs="0"/>
       <xs:element ref="v2:AppliedBandwidthLimit" minOccurs="0" />
       <xs:element ref="v2:AppliedBandwidthSource" minOccurs="0" />
       <xs:element ref="v2:LocalClientEvent" minOccurs="0"/>
       <xs:element ref="v2:RemoteClientEvent" minOccurs="0"/>
       <xs:element ref="v2:OpaqueCoreEndpointData" minOccurs="0" />
       <xs:element ref="v2:OpaqueChannelData" minOccurs="0" />
       <xs:sequence minOccurs="0">
         <xs:element ref="v2:Separator" />
         <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:sequence>
     <!-- Label values : "main-audio", "main-video","panoramic-video", "data", -->
     <!-- Additional Label values in v3 : "main-video1", "main-video2", "main-video3","main-video4","main-video5", "main-video6",-->
     <xs:attribute name="Label" type="xs:string" use="required"/>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      MEDIA LINE TYPE
    -->
   <xs:complexType name="MediaLineDescriptionType">
     <xs:sequence>
       <xs:element name="Connectivity" type="tns:ConnectivityType" minOccurs="0"/>
       <!-- Security values : "None", "SRTP","V1"  -->
       <xs:element name="Security" type="xs:string" minOccurs="0"/>
       <xs:element name="Offerer" type="xs:boolean" minOccurs="0"/>
       <xs:element name="Transport" type="tns:TransportType" minOccurs="0"/>
       <xs:element name="NetworkConnectivityInfo" type ="tns:NetworkConnectivityInfoType" minOccurs="0"/>
       <xs:element name="LocalAddr" type="tns:AddrType"/>
       <xs:element name="RemoteAddr" type="tns:AddrType"/>
       <!-- Microphone or USB Phone or Camera device name   -->
       <xs:element name="CaptureDev" type="tns:DeviceType" minOccurs="0"/>
       <!-- Speakers or USB Phone device name    -->
       <xs:element name="RenderDev" type="tns:DeviceType" minOccurs="0"/>
       <xs:element ref="v3:ReflexiveLocalIPAddress" minOccurs="0"/>
       <xs:element ref="v3:MidCallReport" minOccurs="0"/>
       <xs:sequence minOccurs="0">
         <xs:element ref="v3:Separator3"></xs:element>
         <xs:element ref="v4:WifiRadioType" minOccurs="0"/>
         <xs:element ref="v4:WifiRSSI" minOccurs="0"/>
         <xs:element ref="v4:SSID" minOccurs="0"/>
         <xs:element ref="v4:WifiChannel" minOccurs="0"/>
         <xs:element ref="v4:ActivePowerProfile" minOccurs="0"/>
         <xs:element ref="v4:WifiHandovers" minOccurs="0"/>
         <xs:element ref="v4:WifiChannelSwitches" minOccurs="0"/>
         <xs:element ref="v4:WifiChannelReassociations" minOccurs="0"/>
         <xs:element ref="v4:RecvQoSMarking" minOccurs="0"/>
         <xs:element ref="v4:SendQoSMarking" minOccurs="0"/>
         <xs:element ref="v4:WifiRadioFrequency" minOccurs="0"/>
         <xs:element ref="v4:WifiMTU" minOccurs="0"/>
         <xs:element ref="v4:WifiSupportFlags" minOccurs="0"/>
         <xs:element ref="v4:WifiStatusFlags" minOccurs="0"/>
         <xs:element ref="v4:WifiTunnelType" minOccurs="0"/>
         <xs:element ref="v4:WifiSignalStrength" minOccurs="0"/>
         <xs:element ref="v4:WifiBatteryCharge" minOccurs="0"/>
         <xs:element ref="v4:ConnectionName" minOccurs="0"/>
         <xs:element ref="v4:DNSSuffix" minOccurs="0"/>        
         <xs:element ref="v4:LastRTPSendTime" minOccurs="0"/>
         <xs:element ref="v4:LastRTCPSendTime" minOccurs="0"/>
         <xs:element ref="v4:LastRTPReceiveTime" minOccurs="0"/>
         <xs:element ref="v4:LastRTCPReceiveTime" minOccurs="0"/>
         <xs:sequence minOccurs="0">
           <xs:element ref="v4:Separator4"></xs:element>
           <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
       </xs:sequence>
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      Device TYPE
    -->
   <xs:complexType name="DeviceType">
     <xs:sequence>
       <xs:element name="Name" type="xs:string" minOccurs="0"/>
       <xs:element name="Driver" type="xs:string" minOccurs="0"/>
       <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      STREAM DIRECTIONAL METRICS TYPE
    -->
   <xs:complexType name="StreamType">
     <xs:sequence>
       <xs:element name="Network" type="tns:NetworkMetricsType" minOccurs="0"/>
       <xs:element name="Payload" type="tns:PayloadMetricsType" />
       <xs:element name="QualityEstimates" type="tns:QualityEstimatesType" minOccurs="0"/>
       <!-- Support reporting multiple payloads per stream-->
       <xs:element ref="v3:AdditionalPayload" minOccurs="0" maxOccurs="unbounded"/>
       <xs:sequence minOccurs="0">
         <xs:element ref="v3:Separator3"></xs:element>
         <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:sequence>
     <xs:attribute name="Id" type="xs:unsignedInt" use="required"/>
     <xs:attribute name="Start" type="xs:dateTime"/>
     <xs:attribute name="End" type="xs:dateTime"/>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
     <!--  Id = SSRC -->
   </xs:complexType>
  
   <xs:complexType name="NetworkMetricsType">
     <xs:sequence>
       <!-- DiffServ CodePoint  -->
       <xs:element name="DSCP" type="xs:byte" minOccurs="0"/>
       <!-- VLAN is described via 12 bits -->
       <xs:element name="VLAN" type="xs:int" minOccurs="0"/>
       <xs:element name="Jitter" type="tns:JitterType" minOccurs="0"/>
       <xs:element name="PacketLoss" type="tns:PacketLossType" minOccurs="0"/>
       <xs:element name="BurstGapLoss" type="tns:BurstGapLossType" minOccurs="0"/>
       <xs:element name="Delay" type="tns:DelayType" minOccurs="0"/>
       <xs:element name="Utilization" type="tns:NetworkUtilizationType" minOccurs="0"/>
       <xs:element ref="v2:RatioConcealedSamplesAvg" minOccurs="0"/>
       <xs:element ref="v2:RatioStretchedSamplesAvg" minOccurs="0"/>
       <xs:element ref="v2:RatioCompressedSamplesAvg" minOccurs="0"/>
       <xs:sequence minOccurs="0">
         <xs:element ref="v2:Separator" />
         <xs:element ref="v3:ConcealRatioMax" minOccurs="0"/>
         <xs:element ref="v3:ConcealRatioSd" minOccurs="0"/>
         <xs:element ref="v3:HealerPacketDropRatio" minOccurs="0"/>
         <xs:element ref="v3:HealerFECPacketUsedRatio" minOccurs="0"/>
         <xs:element ref="v3:MaxCompressedSamples" minOccurs="0"/>
         <xs:element ref="v3:LossCongestionPercent" minOccurs="0"/>
         <xs:element ref="v3:DelayCongestionPercent" minOccurs="0"/>
         <xs:element ref="v3:ContentionDetectedPercent" minOccurs="0"/>
         <xs:sequence minOccurs="0">
           <xs:element ref="v3:Separator3" />
           <xs:element ref="v4:WifiRetransmissionRate" minOccurs="0"/>
           <xs:element ref="v4:WifiSendRate" minOccurs="0"/>
           <xs:element ref="v4:WifiReceiveRate" minOccurs="0"/>
           <xs:element ref="v4:WifiRetryCount" minOccurs="0"/>
           <xs:element ref="v4:WifiTransmittedFrameCount" minOccurs="0"/>
           <xs:element ref="v4:WifiMaxSendSpeed" minOccurs="0"/>
           <xs:element ref="v4:WifiMaxReceiveSpeed" minOccurs="0"/>
           <xs:element ref="v4:QoSMarkedRate" minOccurs="0"/>
           <xs:sequence minOccurs="0">
             <xs:element ref="v4:Separator4" />
             <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
           </xs:sequence>
         </xs:sequence>
  
  
       </xs:sequence>
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
       ICE  TYPE
     -->
   <xs:complexType name="ConnectivityType">
     <xs:sequence>
       <xs:element name="Ice" type="tns:IceStatusType" minOccurs="0"/>
       <xs:element name="IceWarningFlags" type="xs:unsignedInt" minOccurs="0"/>
       <xs:element name="RelayAddress" type="tns:AddrType" minOccurs="0" maxOccurs="unbounded"/>
       <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attribute ref="v2:RtpLatched" use="optional"/>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      ICE CONECTIVITY TYPE
    -->
   <xs:simpleType name="IceStatusType">
     <xs:restriction base="xs:string">
       <xs:enumeration value="FAILED"/>
       <xs:enumeration value="DIRECT"/>
       <xs:enumeration value="RELAY"/>
       <xs:enumeration value="HTTP-PROXY"/>
     </xs:restriction>
   </xs:simpleType>
   <!--
      NETWORK UTILIZATION TYPE
    -->
   <xs:complexType name="NetworkUtilizationType">
     <xs:sequence>
       <xs:element name="Packets" type="xs:int" minOccurs="0"/>
       <xs:element name="BandwidthEst" type="xs:int" minOccurs="0"/>
       <xs:element name="BandwidthAlloc" type="xs:int" minOccurs="0"/>
       <xs:element ref="v3:BandwidthEstMin" minOccurs="0"/>
       <xs:element ref="v3:BandwidthEstMax" minOccurs="0"/>
       <xs:element ref="v3:BandwidthEstStdDev" minOccurs="0"/>
       <xs:element ref="v3:BandwidthEstAvge" minOccurs="0"/>
       <xs:element ref="v3:LowBandwidthForMultiview" minOccurs="0"/>
       <xs:sequence minOccurs="0">
         <xs:element ref="v3:Separator3" />
         <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      PAYLOAD METRICS TYPE
    -->
   <xs:complexType name="PayloadMetricsType">
     <xs:choice>
       <xs:element name="Audio" type="tns:AudioPayloadMetricsType"/>
       <xs:element name="Video" type="tns:VideoPayloadMetricsType"/>
       <xs:element name="ApplicationSharing" type="v3:ApplicationSharingPayloadMetricsType" />
       <xs:any namespace="##other" processContents="lax" maxOccurs="unbounded"/>
     </xs:choice>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      AUDIO METRICS TYPE
    -->
   <xs:complexType name="AudioPayloadMetricsType">
     <xs:sequence>
       <xs:element name="PayloadType" type="xs:int" minOccurs="0"/>
       <xs:element name="PayloadDescription" type="xs:string" minOccurs="0"/>
       <xs:element name="SampleRate" type="xs:int" minOccurs="0"/>
       <xs:element name="FrameDuration" type="xs:int" minOccurs="0"/>
       <xs:element name="FrameOctets" type="xs:int" minOccurs="0"/>
       <xs:element name="FramesPerPacket" type="xs:int" minOccurs="0"/>
       <xs:element name="PacketsPerSecond" type="xs:int" minOccurs="0"/>
       <!-- <xs:element name="RatioHealedSamplesAvg" type="xs:float" minOccurs="0"/> -->
       <xs:element name="FMTP" type="xs:string" minOccurs="0"/>
       <xs:element name="Signal" type="tns:SignalType" minOccurs="0"/>
       <xs:element name="JitterBuffer" type="tns:JitterBufferType" minOccurs="0"/>
       <xs:element name="SilenceSupress" type="tns:SilenceSuppressionStateType" minOccurs="0"/>
       <xs:element ref="v2:AudioFECUsed" minOccurs="0"/>
       <!--OpaqueAudioData will be removed once everyone move to OpaqueChannelData-->
       <xs:element ref="v2:OpaqueAudioData" minOccurs="0" />
       <xs:sequence minOccurs="0">
         <xs:element ref="v2:Separator" />
         <xs:element ref="v3:DecodeStereoPercent" minOccurs="0"/>
         <xs:element ref="v3:AecRenderStereoPercent" minOccurs="0"/>
         <xs:element ref="v3:AudioPostFECPLR" minOccurs="0"/>
         <xs:element ref="v3:EncodeStereoPercent" minOccurs="0"/>
         <xs:element ref="v3:AecCaptureStereoPercent" minOccurs="0"/>
         <xs:sequence minOccurs="0">
           <xs:element ref="v3:Separator3" />
           <xs:element ref="v4:JitterBufferSizeAvg" minOccurs="0"/>
           <xs:element ref="v4:JitterBufferSizeMax" minOccurs="0"/>
           <xs:element ref="v4:JitterBufferSizeMin" minOccurs="0"/>
           <xs:element ref="v4:JitterBufferSizeSD" minOccurs="0"/>
           <xs:element ref="v4:NetworkJitterAvg" minOccurs="0"/>
           <xs:element ref="v4:NetworkJitterMax" minOccurs="0"/>
           <xs:element ref="v4:NetworkJitterMin" minOccurs="0"/>
           <xs:element ref="v4:NetworkJitterSD" minOccurs="0"/>
           <xs:element ref="v4:PacketReorderRatio" minOccurs="0"/>
           <xs:element ref="v4:PacketReorderDepthAvg" minOccurs="0"/>
           <xs:element ref="v4:PacketReorderDepthMax" minOccurs="0"/>
           <xs:element ref="v4:BurstLossLength1" minOccurs="0"/>
           <xs:element ref="v4:BurstLossLength2" minOccurs="0"/>
           <xs:element ref="v4:BurstLossLength3" minOccurs="0"/>
           <xs:element ref="v4:BurstLossLength4" minOccurs="0"/>
           <xs:element ref="v4:BurstLossLength5" minOccurs="0"/>
           <xs:element ref="v4:BurstLossLength6" minOccurs="0"/>
           <xs:element ref="v4:BurstLossLength7" minOccurs="0"/>
           <xs:element ref="v4:BurstLossLength8OrHigher" minOccurs="0"/>
           <xs:element ref="v4:FECRecvOnPercent" minOccurs="0"/>
           <xs:element ref="v4:FECRecvDistance1" minOccurs="0"/>
           <xs:element ref="v4:FECRecvDistance2" minOccurs="0"/>
           <xs:element ref="v4:FECRecvDistance3" minOccurs="0"/>
           <xs:element ref="v4:FECRecvDistance4" minOccurs="0"/>
           <xs:element ref="v4:FECRecvDistance5" minOccurs="0"/>
           <xs:element ref="v4:FECRecvDistance6" minOccurs="0"/>
           <xs:element ref="v4:FECRecvDistance7" minOccurs="0"/>
           <xs:element ref="v4:FECRecvDistance8OrHigher" minOccurs="0"/>
           <xs:element ref="v4:FECRecvScheme" minOccurs="0"/>
           <xs:element ref="v4:FECRecvRedundancy" minOccurs="0"/>
           <xs:element ref="v4:HealerPushCount" minOccurs="0"/>
           <xs:element ref="v4:HealerPullCount" minOccurs="0"/>
           <xs:element ref="v4:SendMutePercent" minOccurs="0"/>
           <xs:element ref="v4:CaptureOffloadedEffectsAudio" minOccurs="0"/>
           <xs:element ref="v4:RenderOffloadedEffectsAudio" minOccurs="0"/>
           <xs:sequence minOccurs="0">
             <xs:element ref="v4:Separator4" />
             <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
           </xs:sequence>
         </xs:sequence>
       </xs:sequence>
     </xs:sequence>
   </xs:complexType>
   <!--
      VIDEO METRICS TYPE
    -->
   <xs:complexType name="VideoPayloadMetricsType">
     <xs:sequence>
       <xs:element name="PayloadType" type="xs:int" minOccurs="0"/>
       <xs:element name="PayloadDescription" type="xs:string" minOccurs="0"/>
       <xs:element name="Resolution" type="xs:string" minOccurs="0"/>
       <xs:element name="VideoBitRateAvg" type="xs:int" minOccurs="0"/>
       <xs:element name="VideoBitRateMax" type="xs:int" minOccurs="0"/>
       <xs:element name="VideoFrameRateAvg" type="xs:float" minOccurs="0"/>
       <xs:element name="VideoPacketLossRate" type="xs:float" minOccurs="0"/>
       <xs:element name="VideoFrameLossRate" type="xs:float" minOccurs="0"/>
       <!--This is obsolete in w14-->
       <xs:element name="VideoFrameEncodingTime" type="xs:float" minOccurs="0"/>
       <!--This is obsolete in w14-->
       <xs:element name="VideoFrameDecodingTime" type="xs:float" minOccurs="0"/>
       <xs:element name="VideoFEC" type="xs:boolean" minOccurs="0"/>
       <!--This is obsolete in w14-->
       <xs:element name="FrozenVideoFreq" type="xs:float" minOccurs="0"/>
       <!--This is obsolete in w14-->
       <xs:element name="FrozenPeriodPercentAvg" type="xs:float" minOccurs="0"/>
       <!--This is obsolete in w14-->
       <xs:element name="ConsecutivePacketLossAvg" type="xs:float" minOccurs="0"/>
       <!--This is obsolete in w14-->
       <xs:element name="RateMatchLevel" type="xs:float" minOccurs="0"/>
       <xs:element ref="v2:VideoAllocateBWAvg" minOccurs="0"/>
       <xs:element ref="v2:VideoLocalFrameLossPercentageAvg" minOccurs="0"/>
       <!--OpaqueVideoData will be removed once everyone move to OpaqueChannelData-->
       <xs:element ref="v2:OpaqueVideoData" minOccurs="0" />
       <xs:sequence minOccurs="0">
         <xs:element ref="v2:Separator" />
         <!-- The following two metrics should really be labelled v3 -->
         <xs:element ref="v2:VideoResolutionDistribution" minOccurs="0" />
         <xs:element ref="v2:VideoRateMatchingLevelDistribution" minOccurs="0" />
         <xs:sequence minOccurs="0">
           <!-- New v3 Video Receive Metrics go here -->
           <xs:element ref="v2:Separator" />
           <xs:element ref="v3:SendCodecTypes" minOccurs="0"/>
           <xs:element ref="v3:SendFrameRateAverage" minOccurs="0"/>
           <xs:element ref="v3:SendBitRateMaximum" minOccurs="0"/>
           <xs:element ref="v3:SendBitRateAverage" minOccurs="0"/>
           <xs:element ref="v3:SendVideoStreamsMax" minOccurs="0"/>
           <xs:element ref="v3:SendResolutionWidth" minOccurs="0"/>
           <xs:element ref="v3:SendResolutionHeight" minOccurs="0"/>
          
           <xs:element ref="v3:RecvCodecTypes" minOccurs="0"/>
           <xs:element ref="v3:RecvResolutionWidth" minOccurs="0"/>
           <xs:element ref="v3:RecvResolutionHeight" minOccurs="0"/>
           <xs:element ref="v3:RecvFrameRateAverage" minOccurs="0"/>
           <xs:element ref="v3:RecvBitRateMaximum" minOccurs="0"/>
           <xs:element ref="v3:RecvBitRateAverage" minOccurs="0"/>
           <xs:element ref="v3:RecvVideoStreamsMax" minOccurs="0"/>
           <xs:element ref="v3:RecvVideoStreamsMin" minOccurs="0"/>
           <xs:element ref="v3:RecvVideoStreamsMode" minOccurs="0"/>
           <xs:element ref="v3:VideoPostFECPLR" minOccurs="0"/>
  
           <xs:element ref="v3:DynamicCapabilityPercent" minOccurs="0"/>
           <xs:element ref="v3:ResolutionMin" minOccurs="0"/>
           <xs:element ref="v3:LowBitRateCallPercent" minOccurs="0"/>
           <xs:element ref="v3:LowFrameRateCallPercent" minOccurs="0"/>
           <xs:element ref="v3:LowResolutionCallPercent" minOccurs="0"/>
  
           <!-- Added to support multiple video payloads in single stream-->
           <xs:element ref="v3:DurationSeconds" minOccurs="0"/>
           <xs:element ref="v3:IsAggregatedData" minOccurs="0"/>
           <xs:element ref="v3:UseForCallClassification" minOccurs="0"/>
  
           <xs:sequence minOccurs="0">
             <xs:element ref="v3:Separator3" />
             <xs:element ref="v4:RecvReorderBufferTotalPackets" minOccurs="0" />
             <xs:element ref="v4:RecvReorderBufferReorderedPackets" minOccurs="0" />
             <xs:element ref="v4:RecvReorderBufferReorderedPacketsSuccessfullyOrdered" minOccurs="0" />
             <xs:element ref="v4:RecvReorderBufferPacketsDroppedDueToBufferExhaustion" minOccurs="0" />
             <xs:element ref="v4:RecvReorderBufferMaxSuccessfullyOrderedExtent" minOccurs="0" />
             <xs:element ref="v4:RecvReorderBufferMaxSuccessfullyOrderedLateTime" minOccurs="0" />
             <xs:element ref="v4:RecvReorderBufferPacketsDroppedDueToTimeout" minOccurs="0" />
             <xs:sequence minOccurs="0">
               <xs:element ref="v4:Separator4" />
               <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
             </xs:sequence>
           </xs:sequence>
         </xs:sequence>
       </xs:sequence>
     </xs:sequence>
   </xs:complexType>
   <!--
      SILENCE SUPPRESSION STATE TYPE
    -->
   <xs:simpleType name="SilenceSuppressionStateType">
     <xs:restriction base="xs:string">
       <xs:enumeration value="ON"/>
       <xs:enumeration value="OFF"/>
     </xs:restriction>
   </xs:simpleType>
   <!--
      ADDR TYPE
    -->
   <xs:complexType name="AddrType">
     <xs:sequence>
       <xs:element name="IPAddr" type="xs:string"/>
       <xs:element name="Port" type="xs:unsignedShort" minOccurs="0"/>
       <xs:element name="Inside" type="xs:boolean" minOccurs="0"/>
       <xs:element name="SubnetMask" type="xs:string" minOccurs="0"/>
       <xs:element ref="v2:MACAddr" minOccurs="0"></xs:element>
       <xs:sequence minOccurs="0">
         <xs:element ref="v2:Separator"></xs:element>
         <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      JITTER BUFFER TYPE
    -->
   <xs:complexType name="JitterBufferType">
     <xs:sequence>
       <xs:element name="Type" type="tns:JitterBufferAdaptiveType" minOccurs="0"/>
       <xs:element name="Rate" type="xs:int" minOccurs="0"/>
       <xs:element name="Nominal" type="xs:int" minOccurs="0"/>
       <xs:element name="Max" type="xs:int" minOccurs="0"/>
       <xs:element name="AbsMax" type="xs:int" minOccurs="0"/>
       <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      JITTER BUFFER ADAPTIVE TYPE
    -->
   <xs:simpleType name="JitterBufferAdaptiveType">
     <xs:restriction base="xs:string">
       <xs:enumeration value="UNKNOWN"/>
       <xs:enumeration value="RESERVED"/>
       <xs:enumeration value="NON-ADAPTIVE"/>
       <xs:enumeration value="ADAPTIVE"/>
     </xs:restriction>
   </xs:simpleType>
   <!--
      PACKET LOSS TYPE
    -->
   <xs:complexType name="PacketLossType">
     <xs:sequence>
       <xs:element name="LossRate" type="xs:float" minOccurs="0"/>
       <xs:element name="LossRateMax" type="xs:float" minOccurs="0"/>
       <xs:element name="DiscardRate" type="xs:float" minOccurs="0"/>
       <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      BURST GAP LOSS TYPE
    -->
   <xs:complexType name="BurstGapLossType">
     <xs:sequence>
       <xs:element name="BurstDensity" type="xs:float" minOccurs="0"/>
       <xs:element name="BurstDuration" type="xs:int" minOccurs="0"/>
       <xs:element name="GapDensity" type="xs:float" minOccurs="0"/>
       <xs:element name="GapDuration" type="xs:int" minOccurs="0"/>
       <xs:element name="MinGapThreshold" type="xs:int" minOccurs="0"/>
       <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      DELAY TYPE
    -->
   <xs:complexType name="DelayType">
     <xs:sequence>
       <xs:element name="RoundTrip" type="xs:int" minOccurs="0"/>
       <xs:element name="RoundTripMax" type="xs:int" minOccurs="0"/>
       <xs:element name="EndSystem" type="xs:int" minOccurs="0"/>
       <xs:element name="OneWay" type="xs:int" minOccurs="0"/>
       <xs:element ref="v3:RelativeOneWay" minOccurs="0"/>
       <xs:sequence minOccurs="0">
         <xs:element ref="v3:Separator3" />
         <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>      
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      JITTER TYPE
    -->
   <xs:complexType name="JitterType">
     <xs:sequence>
       <xs:element name="InterArrival" type="xs:int" minOccurs="0"/>
       <xs:element name="InterArrivalMax" type="xs:int" minOccurs="0"/>
       <xs:element name="MeanAbs" type="xs:int" minOccurs="0"/>
       <xs:element ref="v3:InterArrivalSD" minOccurs="0"/>
       <xs:sequence minOccurs="0">
         <xs:element ref="v3:Separator3" />
         <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>           
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      SIGNAL TYPE
    -->
   <xs:complexType name="SignalType">
     <xs:sequence>
       <xs:element name="SignalLevel" type="xs:int" minOccurs="0" />
       <xs:element name="NoiseLevel" type="xs:int" minOccurs="0" />
       <xs:element name="EchoReturn" type="xs:int" minOccurs="0" />
       <!-- <xs:element name="RxAvgGain" type="xs:int" minOccurs="0"/> -->
       <!--This is obsolete in w14-->
       <xs:element name="SpeakerFeedbackMicIn" type="xs:int" minOccurs="0"/>
       <!--This is obsolete in w14-->
       <xs:element name="SpeechLevelMicIn" type="xs:int" minOccurs="0"/>
       <!--This is obsolete in w14-->
       <xs:element name="SpeechLevelPostProcess" type="xs:int" minOccurs="0"/>
       <!--This is obsolete in w14-->
       <xs:element name="SignalLevelLoudSpeaker" type="xs:int" minOccurs="0"/>
       <!--This is obsolete in w14-->
       <xs:element name="BackGroundNoiseMicIn" type="xs:int" minOccurs="0"/>
       <!--This is obsolete in w14-->
       <xs:element name="BackGroundNoiseSent" type="xs:int" minOccurs="0"/>
       <!--This is obsolete in w14-->
       <xs:element name="LocalSpeechToEcho" type="xs:int" minOccurs="0"/>
       <xs:element name="SpeakerGlitchRate" type="xs:int" minOccurs="0"/>
       <xs:element name="MicGlitchRate" type="xs:int" minOccurs="0"/>
       <!--This is obsolete in w14-->
       <xs:element name="SpeakerClipRate" type="xs:int" minOccurs="0"/>
       <!--This is obsolete in w14-->
       <xs:element name="MicClipRate" type="xs:int" minOccurs="0"/>
       <xs:element name="RxAGCSignalLevel" type="xs:int" minOccurs="0"/>
       <xs:element name="RxAGCNoiseLevel" type="xs:int" minOccurs="0"/>
       <xs:element ref="v2:InitialSignalLevelRMS" minOccurs="0"></xs:element>
       <xs:element ref="v2:AudioTimestampDriftRateMic" minOccurs="0"></xs:element>
       <xs:element ref="v2:AudioTimestampDriftRateSpk" minOccurs="0"></xs:element>
       <xs:element ref="v2:AudioTimestampErrorMicMs" minOccurs="0"></xs:element>
       <xs:element ref="v2:AudioTimestampErrorSpkMs" minOccurs="0"></xs:element>
       <xs:element ref="v2:VsEntryCauses" minOccurs="0"></xs:element>
       <xs:element ref="v2:EchoEventCauses" minOccurs="0"></xs:element>
       <xs:element ref="v2:EchoPercentMicIn" minOccurs="0"></xs:element>
       <xs:element ref="v2:EchoPercentSend" minOccurs="0"></xs:element>
       <xs:element ref="v2:RxAvgAGCGain" minOccurs="0"></xs:element>
       <xs:sequence minOccurs="0">
         <xs:element ref="v2:Separator"/>
          <xs:element ref="v3:RecvSignalLevelCh1" minOccurs="0"/>
          <xs:element ref="v3:RecvSignalLevelCh2" minOccurs="0"/>
          <xs:element ref="v3:RecvNoiseLevelCh1" minOccurs="0"/>
          <xs:element ref="v3:RecvNoiseLevelCh2" minOccurs="0"/>
          <xs:element ref="v3:SendSignalLevelCh1" minOccurs="0"/>
          <xs:element ref="v3:SendSignalLevelCh2" minOccurs="0"/>
          <xs:element ref="v3:SendNoiseLevelCh1" minOccurs="0"/>
          <xs:element ref="v3:SendNoiseLevelCh2" minOccurs="0"/>        
         <xs:sequence minOccurs="0">
           <xs:element ref="v3:Separator3"/>
             <xs:element ref="v4:RenderSignalLevel" minOccurs="0"/>
             <xs:element ref="v4:RenderNoiseLevel" minOccurs="0"/>
             <xs:element ref="v4:RenderLoopbackSignalLevel" minOccurs="0"/>
             <xs:sequence minOccurs="0">
               <xs:element ref="v4:Separator4" />
               <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
             </xs:sequence>
           </xs:sequence>
       </xs:sequence>
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      QUALITY ESTIMATES TYPE
    -->
   <xs:complexType name="QualityEstimatesType">
     <xs:choice>
       <xs:element name="Audio" type="tns:AudioQualityEstimatesType"/>
       <xs:element name="Video" type="tns:VideoQualityEstimatesType"/>
       <xs:any namespace="##other" processContents="lax" maxOccurs="unbounded"/>
     </xs:choice>
   </xs:complexType>
   <!--
      AUDIO QUALITY ESTIMATES TYPE 
    -->
   <xs:complexType name="AudioQualityEstimatesType">
     <xs:sequence>
       <xs:element name="RecvListenMOS" type="xs:float" minOccurs="0"/>
       <xs:element name="RecvListenMOSMin" type="xs:float" minOccurs="0"/>
       <xs:element name="RecvListenMOSAlg" type="xs:string" minOccurs="0"/>
       <xs:element name="SendListenMOS" type="xs:float" minOccurs="0"/>
       <xs:element name="SendListenMOSMin" type="xs:float" minOccurs="0"/>
       <xs:element name="SendListenMOSAlg" type="xs:string" minOccurs="0"/>
       <xs:element name="NetworkMOS" type="tns:NetworkAudioMOSType" minOccurs="0"/>
       <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      NETWORK AUDIO MOS FACTOR TYPE
    -->
   <xs:complexType name="NetworkAudioMOSType">
     <xs:sequence>
       <xs:element name="OverallAvg" type="xs:float" minOccurs="0"/>
       <xs:element name="OverallMin" type="xs:float" minOccurs="0"/>
       <xs:element name="DegradationAvg" type="xs:float" minOccurs="0"/>
       <xs:element name="DegradationMax" type="xs:float" minOccurs="0"/>
       <xs:element name="DegradationJitterAvg" type="xs:float" minOccurs="0"/>
       <xs:element name="DegradationPacketLossAvg" type="xs:float" minOccurs="0"/>
       <xs:element ref="v2:NetworkMOSAlg" minOccurs="0"/>
       <xs:sequence minOccurs="0">
         <xs:element ref="v2:Separator" />
         <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      VIDEO QUALITY ESTIMATES TYPE
    -->
   <xs:complexType name="VideoQualityEstimatesType">
     <xs:sequence>
       <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <!--
      TRANSPORT TYPE
    -->
   <xs:simpleType name="TransportType">
     <xs:restriction base="xs:string">
       <xs:enumeration value="UDP"/>
       <xs:enumeration value="TCP"/>
     </xs:restriction>
   </xs:simpleType>
  
   <!--
   NETWORK CONNECTIVITY TYPE
   -->
   <xs:complexType name="NetworkConnectivityInfoType">
     <xs:sequence>
       <xs:element name="NetworkConnection" type="tns:NetworkConnectionType" minOccurs="0"/>
       <xs:element name="VPN" type="xs:boolean" minOccurs="0"/>
       <xs:element name="LinkSpeed" type="xs:float" minOccurs="0"/>
       <xs:element ref="v2:BSSID" minOccurs="0"></xs:element>
       <xs:sequence minOccurs="0">
         <xs:element ref="v2:Separator"></xs:element>
         <xs:element ref="v3:NetworkConnectionDetails" minOccurs="0"/>
         <xs:element ref="v3:WifiDriverDeviceDesc" minOccurs="0"/>
         <xs:element ref="v3:WifiDriverVersion" minOccurs="0"/>
         <xs:element ref="v3:TraceRoute" minOccurs="0" maxOccurs="unbounded"/>
         <xs:sequence minOccurs="0">
           <xs:element ref="v3:Separator3"/>
           <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
       </xs:sequence>
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
  
   <!--
      ETHERNET CONNECTION TYPE
    -->
   <xs:simpleType name="NetworkConnectionType">
     <xs:restriction base="xs:string">
       <xs:enumeration value="wired"/>
       <xs:enumeration value="wifi"/>
     </xs:restriction>
   </xs:simpleType>
  
   <!--
      ENDPOINT TYPE
    -->
   <xs:complexType name="EndpointType">
     <xs:sequence>
       <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attribute name="Name" type="xs:string" use="required"/>
     <xs:attribute name="ProfileId" type="xs:string" use="optional"/>
     <xs:attribute ref="v2:OS" use="optional"/>
     <xs:attribute ref="v2:CPUName" use="optional"/>
     <xs:attribute ref="v2:CPUNumberOfCores" use="optional"/>
     <xs:attribute ref="v2:CPUProcessorSpeed" use="optional"/>
     <xs:attribute ref="v2:VirtualizationFlag" use="optional"/>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
     <!-- Name = Computer Name-->
     <!-- ProfileId = Endpoint Report GUID  - Note: this attribute is optional-->
   </xs:complexType>
 </xs:schema>

The schema for ms-rtcp-metrics.v2.xsd is as follows:

 <?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:v2="ms-rtcp-metrics.v2" xmlns:v3="ms-rtcp-metrics.v3" xmlns:v4="ms-rtcp-metrics.v4" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="ms-rtcp-metrics.v2" elementFormDefault="qualified" version="1.2" attributeFormDefault="unqualified">
   <xs:import namespace="ms-rtcp-metrics.v3"></xs:import>
   <xs:import namespace="ms-rtcp-metrics.v4"></xs:import>
  
   <!--Schema version-->  
   <xs:attribute name="SchemaVersion" type="xs:string"/>
  
   <!--The following are part of dialog info-->
   
   <xs:element name="CallPriority" type="xs:short"/>
   <xs:element name="RegisteredInside" type="xs:boolean"/>
   <xs:element name="MediationServerBypassFlag" type="xs:boolean"/>
   <xs:element name="TrunkingPeer" type="xs:string"/>
   <xs:element name="BSSID" type="xs:string"/>
   <xs:element name="MediaBypassWarningFlag" type="xs:int"/>
  
  
   <!--The following are ICE metrics-->
   <xs:attribute name="RtpLatched" type="xs:boolean"/>
   
   
   <!--The following are media metrics-->
   
   <xs:element name="AppliedBandwidthLimit" type="xs:int"/>
   <xs:element name="AppliedBandwidthSource" type="xs:string"/>
   <xs:element name="InitialSignalLevelRMS" type="xs:float"/>
   <xs:element name="AudioFECUsed" type="xs:boolean"/>
   <xs:element name="VideoAllocateBWAvg" type="xs:int"/>
   <xs:element name="VideoLocalFrameLossPercentageAvg" type="xs:float"/>
  
   <!--The following are AEC metrics-->
   <xs:element name="AudioTimestampDriftRateMic" type="xs:float"/>
   <xs:element name="AudioTimestampDriftRateSpk" type="xs:float"/>
   <xs:element name="AudioTimestampErrorMicMs" type="xs:float"/>
   <xs:element name="AudioTimestampErrorSpkMs" type="xs:float"/>
   <xs:element name="VsEntryCauses" type="xs:short"/>
   <xs:element name="EchoEventCauses" type="xs:unsignedByte"/>
   <xs:element name="EchoPercentMicIn" type="xs:float"/>
   <xs:element name="EchoPercentSend" type="xs:float"/>
   <xs:element name="RxAvgAGCGain" type="xs:int"/>
  
   <!--The following are healer metrics-->
   <xs:element name="RatioConcealedSamplesAvg" type="xs:float"/>
   <xs:element name="RatioStretchedSamplesAvg" type="xs:float"/>
   <xs:element name="RatioCompressedSamplesAvg" type="xs:float"/>
  
   <!--The following are Network MOS related-->
   <xs:element name="NetworkMOSAlg" type="xs:string"/>
   
   
   
   <!--The following are endpoint information-->
  
   <xs:attribute name="OS" type="xs:string"/>
   <!--
   Bit flag indicate if the system is running in a virtualized environment:
     0x00: None
     0x01: HyperV
     0x02: VMWare
     0x04: Virtual PC
     0x08: Xen PC
   -->
   <xs:attribute name="VirtualizationFlag" type="xs:byte"/>
   <xs:attribute name="CPUNumberOfCores" type="xs:short"/>
   <xs:attribute name="CPUProcessorSpeed" type="xs:int"/>
   <xs:attribute name="CPUName" type="xs:string"/>
   <xs:element name="MACAddr" type="xs:string"/>
  
  
   <!--The following are client event count-->
   <xs:element name="LocalClientEvent" type="v2:ClientEventType"/>
   <xs:element name="RemoteClientEvent" type="v2:ClientEventType"/>
   <xs:complexType name="ClientEventType">
     <xs:sequence>
       <xs:element name="NetworkSendQualityEventRatio" type="xs:float" minOccurs="0"/>
       <xs:element name="NetworkReceiveQualityEventRatio" type="xs:float" minOccurs="0"/>
       <xs:element name="NetworkDelayEventRatio" type="xs:float" minOccurs="0"/>
       <xs:element name="NetworkBandwidthLowEventRatio" type="xs:float" minOccurs="0"/>
       <xs:element name="CPUInsufficientEventRatio" type="xs:float" minOccurs="0"/>
       <xs:element name="DeviceHalfDuplexAECEventRatio" type="xs:float" minOccurs="0"/>
       <xs:element name="DeviceRenderNotFunctioningEventRatio" type="xs:float" minOccurs="0"/>
       <xs:element name="DeviceCaptureNotFunctioningEventRatio" type="xs:float" minOccurs="0"/>
       <xs:element name="DeviceGlitchesEventRatio" type="xs:float" minOccurs="0"/>
       <xs:element name="DeviceLowSNREventRatio" type="xs:float" minOccurs="0"/>
       <xs:element name="DeviceLowSpeechLevelEventRatio" type="xs:float" minOccurs="0"/>
       <xs:element name="DeviceClippingEventRatio" type="xs:float" minOccurs="0"/>
       <xs:element name="DeviceEchoEventRatio" type="xs:float" minOccurs="0"/>
       <xs:element name="DeviceNearEndToEchoRatioEventRatio" type="xs:float" minOccurs="0"/>
       <xs:element name="DeviceMultipleEndpointsEventCount" type="xs:short" minOccurs="0"/>
       <xs:element name="DeviceHowlingEventCount" type="xs:short" minOccurs="0"/>
       <xs:sequence minOccurs="0">
         <xs:element ref="v2:Separator"/>
         <xs:element ref="v3:DeviceRenderZeroVolumeEventRatio" minOccurs="0"/>
         <xs:element ref="v3:DeviceRenderMuteEventRatio" minOccurs="0"/>
         <xs:sequence minOccurs="0">
           <xs:element ref="v3:Separator3" />
           <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
       </xs:sequence>
     </xs:sequence>
     <xs:anyAttribute namespace="##any" processContents="lax" />
   </xs:complexType>
  
  
   <!--The following are video metrics-->
   <xs:element name="VideoResolutionDistribution" type="v2:VideoResolutionDistributionType"/>
  
   <xs:complexType name="VideoResolutionDistributionType">
     <xs:sequence>
       <xs:element name="CIFQuality" type="xs:unsignedByte" />
       <xs:element name="VGAQuality" type="xs:unsignedByte" />
       <xs:element name="HD720Quality" type="xs:unsignedByte" />
       <xs:sequence minOccurs="0">
         <xs:element ref="v2:Separator"/>
         <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:sequence>
     <xs:anyAttribute namespace="##any" processContents="lax"/>
   </xs:complexType>
  
   <xs:element name="VideoRateMatchingLevelDistribution" type="v2:VideoRateMatchingLevelDistributionType"/>
   <xs:complexType name="VideoRateMatchingLevelDistributionType">
     <xs:sequence>
       <xs:element name="None_Drop" type="xs:unsignedByte" />
       <xs:element name="B_Drop" type="xs:unsignedByte" />
       <xs:element name="BP_Drop" type="xs:unsignedByte" />
       <xs:element name="BPSP_Drop" type="xs:unsignedByte" />
       <xs:element name="BPSPI_Drop" type="xs:unsignedByte" />
       <xs:sequence minOccurs="0">
         <xs:element ref="v2:Separator"/>
         <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:sequence>
     <xs:anyAttribute namespace="##any" processContents="lax"/>
   </xs:complexType>
  
  
   <!--The following are debugging blob, it's for internal use only-->
   
   <xs:element name="OpaqueClientPlatformData" type="v2:OpaqueClientPlatformDataType" />
   <xs:element name="OpaqueServerPlatformData" type="v2:OpaqueServerPlatformDataType" />
   <xs:element name="OpaqueCoreEndpointData" type="v2:OpaqueCoreEndpointDataType" />
   <xs:element name="OpaqueConferenceData" type="v2:OpaqueConferenceDataType" />
   <xs:element name="OpaqueChannelData" type="v2:OpaqueChannelDataType" />
   
   <!--These two elements should be removed once nobody refer to it. (Instead, everyone should use OpaqueChannelData)-->
   <xs:element name="OpaqueAudioData" type="v2:OpaqueAudioDataType" />
   <xs:element name="OpaqueVideoData" type="v2:OpaqueVideoDataType" />
  
  
   <!--OPAQUE MEDIALINE DATA TYPE-->
   <xs:complexType name="OpaqueCoreEndpointDataType">
     <xs:sequence>
       <xs:element name="OpaqueData" type="xs:string" minOccurs="0" />
     </xs:sequence>
     <xs:anyAttribute namespace="##any" processContents="lax" />
   </xs:complexType>
   <!--OPAQUE CHANNEL DATA TYPE-->
   <xs:complexType name="OpaqueChannelDataType" >
     <xs:sequence>
       <xs:element name="OpaqueData" type="xs:string" minOccurs="0" />
     </xs:sequence>
     <xs:anyAttribute namespace="##any" processContents="lax" />
   </xs:complexType>
   <!--OPAQUE CLIENT PLATFORM DATA TYPE-->
   <xs:complexType name="OpaqueClientPlatformDataType">
     <xs:sequence>
       <xs:element name="OpaqueData" type="xs:string" minOccurs="0" />
     </xs:sequence>
     <xs:anyAttribute namespace="##any" processContents="lax" />
   </xs:complexType>
   <!--OPAQUE SERVER PLATFORM DATA TYPE-->
   <xs:complexType name="OpaqueServerPlatformDataType">
     <xs:sequence>
       <xs:element name="OpaqueData" type="xs:string" minOccurs="0" />
     </xs:sequence>
     <xs:anyAttribute namespace="##any" processContents="lax" />
   </xs:complexType>
   <!--OPAQUE CONFERENCE DATA TYPE-->
   <xs:complexType name="OpaqueConferenceDataType">
     <xs:sequence>
       <xs:element name="OpaqueData" type="xs:string" minOccurs="0" />
     </xs:sequence>
     <xs:anyAttribute namespace="##any" processContents="lax" />
   </xs:complexType>
   <!--OPAQUE VIDEO DATA TYPE (this should be removed once nobody refer to it)-->
   <xs:complexType name="OpaqueVideoDataType">
     <xs:sequence>
       <xs:element name="OpaqueData" type="xs:string" minOccurs="0" />
     </xs:sequence>
     <xs:anyAttribute namespace="##any" processContents="lax" />
   </xs:complexType>
   <!--OPAQUE AUDIO DATA TYPE (this should be removed once nobody refer to it)-->
   <xs:complexType name="OpaqueAudioDataType">
     <xs:sequence>
       <xs:element name="OpaqueData" type="xs:string" minOccurs="0" />
     </xs:sequence>
     <xs:anyAttribute namespace="##any" processContents="lax" />
   </xs:complexType>
  
  
  
   <!--Separator is used for forward/backward compatiblity-->
   <xs:element name="Separator">
     <xs:complexType></xs:complexType>
   </xs:element>
  
 </xs:schema>

The schema for ms-rtcp-metrics.v3.xsd is as follows:

 <?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:tns="ms-rtcp-metrics" xmlns:v2="ms-rtcp-metrics.v2" xmlns:v3="ms-rtcp-metrics.v3" xmlns:v4="ms-rtcp-metrics.v4" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="ms-rtcp-metrics.v3" elementFormDefault="qualified" version="1.2" attributeFormDefault="unqualified">
   <xs:import namespace="ms-rtcp-metrics.v4"></xs:import>
  
   <!--Core Metrics-->
   <xs:element name="WifiDriverDeviceDesc" type="xs:string"/>
   <xs:element name="WifiDriverVersion" type="xs:string"/>
   
   <!--ClientEvent Metrics-->
   <xs:element name="NetworkConnectionDetails" type="xs:string"/>
   <xs:element name="DeviceRenderZeroVolumeEventRatio" type="xs:float"/>
   <xs:element name="DeviceRenderMuteEventRatio" type="xs:float"/>
  
   <!--Platform Metrics-->
   
   <!--Audio Metrics-->
   <xs:element name="DecodeStereoPercent" type="xs:float"/>
   <xs:element name="AecRenderStereoPercent" type="xs:float"/>
   <xs:element name="AudioPostFECPLR" type="xs:float"/>
   <xs:element name="EncodeStereoPercent" type="xs:float"/>
   <xs:element name="AecCaptureStereoPercent" type="xs:float"/>
   <xs:element name="RecvSignalLevelCh1" type="xs:int"/>
   <xs:element name="RecvSignalLevelCh2" type="xs:int"/>
   <xs:element name="RecvNoiseLevelCh1" type="xs:int"/>
   <xs:element name="RecvNoiseLevelCh2" type="xs:int"/>
   <xs:element name="SendSignalLevelCh1" type="xs:int"/>
   <xs:element name="SendSignalLevelCh2" type="xs:int"/>
   <xs:element name="SendNoiseLevelCh1" type="xs:int"/>
   <xs:element name="SendNoiseLevelCh2" type="xs:int"/>
   <xs:element name="ConcealRatioMax" type="xs:float"/>
   <xs:element name="ConcealRatioSd" type="xs:float"/>
   <xs:element name="HealerPacketDropRatio" type="xs:float"/>
   <xs:element name="HealerFECPacketUsedRatio" type="xs:float"/>
   <xs:element name="MaxCompressedSamples" type="xs:float"/>
  
   <!--Jitter Metrics-->
   <xs:element name="InterArrivalSD" type="xs:float"/>
  
   <!--Video Metrics-->
   <xs:element name="SendCodecTypes" type="xs:string"/>
   <xs:element name="SendResolutionWidth" type="xs:int"/>
   <xs:element name="SendResolutionHeight" type="xs:int"/>
   <xs:element name="SendFrameRateAverage" type="xs:float"/>
   <xs:element name="SendBitRateMaximum" type="xs:int"/>
   <xs:element name="SendBitRateAverage" type="xs:int"/>
   <xs:element name="SendVideoStreamsMax" type="xs:int"/>
   
   <xs:element name="RecvCodecTypes" type="xs:string"/>
   <xs:element name="RecvResolutionWidth" type="xs:int"/>
   <xs:element name="RecvResolutionHeight" type="xs:int"/>
   <xs:element name="RecvFrameRateAverage" type="xs:float"/>
   <xs:element name="RecvBitRateMaximum" type="xs:int"/>
   <xs:element name="RecvBitRateAverage" type="xs:int"/>
   <xs:element name="RecvVideoStreamsMax" type="xs:int"/>
   <xs:element name="RecvVideoStreamsMin" type="xs:int"/>
   <xs:element name="RecvVideoStreamsMode" type="xs:int"/>
   <xs:element name="VideoPostFECPLR" type="xs:float"/>
   
   <xs:element name="RelativeOneWay" type="v3:MetricAggregationType"/>
  
   <xs:element name="BandwidthEstMin" type="xs:int"/>
   <xs:element name="BandwidthEstMax" type="xs:int"/>
   <xs:element name="BandwidthEstStdDev" type="xs:int"/>
   <xs:element name="BandwidthEstAvge" type="xs:int"/>
   <xs:element name="LowBandwidthForMultiview" type="xs:float"/>
  
   <xs:element name="LossCongestionPercent" type="xs:float"/>
   <xs:element name="DelayCongestionPercent" type="xs:float"/>
   <xs:element name="ContentionDetectedPercent" type="xs:float"/>
  
   <xs:element name="DynamicCapabilityPercent" type="xs:float"/>
   <xs:element name="ResolutionMin" type="xs:string"/>
   <xs:element name="LowBitRateCallPercent" type="xs:float"/>
   <xs:element name="LowFrameRateCallPercent" type="xs:float"/>
   <xs:element name="LowResolutionCallPercent" type="xs:float"/>
  
   <!-- Support multiple video payloads in single stream  -->
   <xs:element name="AdditionalPayload" type="tns:PayloadMetricsType" />
   <xs:element name="DurationSeconds" type="xs:float"/>
   <xs:element name="IsAggregatedData" type="xs:boolean" default="true"/>
   <xs:element name="UseForCallClassification" type="xs:boolean" default="true" />
  
   <!-- New Description elements -->
   <xs:element name="ReflexiveLocalIPAddress" type="tns:AddrType"/>
   <xs:element name="MidCallReport" type="xs:boolean" default="false" />
  
   <xs:complexType name="ApplicationSharingPayloadMetricsType">
     <xs:sequence>
       <xs:element name="PayloadDescription" type="xs:string" minOccurs="0"/>
       <xs:element name="AverageRectangleHeight" type="xs:int" minOccurs="0"/>
       <xs:element name="AverageRectangleWidth" type="xs:int" minOccurs="0"/>
       <xs:element name="ApplicationShared" type="xs:string" minOccurs="0"/>
       <xs:element name="RDPTileProcessingLatency" type="v3:MetricAggregationType" minOccurs="0"/>
       <xs:element name="CaptureTileRate" type="v3:MetricAggregationType" minOccurs="0"/>
       <xs:element name="SpoiledTilePercent" type="v3:MetricAggregationType" minOccurs="0"/>
       <xs:element name="ScrapingFrameRate" type="v3:MetricAggregationType" minOccurs="0"/>
       <xs:element name="IncomingTileRate" type="v3:MetricAggregationType" minOccurs="0"/>
       <xs:element name="IncomingFrameRate" type="v3:MetricAggregationType" minOccurs="0"/>
       <xs:element name="OutgoingTileRate" type="v3:MetricAggregationType" minOccurs="0"/>
       <xs:element name="OutgoingFrameRate" type="v3:MetricAggregationType" minOccurs="0"/>
       <xs:element name="OpaqueAppSharingData" type="v2:OpaqueChannelDataType" minOccurs="0"/> 
       <xs:sequence minOccurs="0">
         <xs:element ref="v3:Separator3"/>
         <xs:element ref="v4:InitialFrameReceivedTime" minOccurs="0"/>
         <xs:element ref="v4:InitialFrameSentSize" minOccurs="0"/>
         <xs:element ref="v4:NumSharingStarted" minOccurs="0"/>
         <xs:element ref="v4:NumRemoteControlChanges" minOccurs="0"/>
         <xs:element name="SharerAppSharingEstablishTime" type="v4:AppSharingEstablishTime" minOccurs="0"/>
         <xs:element name="ViewerAppSharingEstablishTime" type="v4:AppSharingEstablishTime" minOccurs="0"/>
         <xs:sequence minOccurs="0">
           <xs:element ref="v4:Separator4" />
           <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
       </xs:sequence>   
     </xs:sequence>
     <xs:anyAttribute namespace="##any" processContents="lax"/>
   </xs:complexType>
  
  
   <xs:complexType name="MetricAggregationType">
     <xs:sequence>
       <xs:element name="Total" type="xs:float" minOccurs="0"/>
       <xs:element name="Average" type="xs:float" minOccurs="0"/>
       <xs:element name="Max" type="xs:float" minOccurs="0"/>
       <xs:element name="Burst" type="v3:MetricBurstGapType" minOccurs="0"/>
       <xs:element name="Gap" type="v3:MetricBurstGapType" minOccurs="0"/>
       <xs:sequence minOccurs="0">
         <xs:element ref="v3:Separator3"/>
         <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:sequence>
     <xs:anyAttribute namespace="##any" processContents="lax"/>
   </xs:complexType>
  
   <!--Metrics Burst and Gap Type calculation--> 
   <xs:complexType name="MetricBurstGapType">
     <xs:sequence>
       <xs:element name="Occurrences" type="xs:int" minOccurs="0"/>
       <xs:element name="Density" type="xs:float" minOccurs="0"/>
       <xs:element name="Duration" type="xs:float" minOccurs="0"/>
       <xs:sequence minOccurs="0">
         <xs:element ref="v3:Separator3"/>
         <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:sequence>
     <xs:anyAttribute namespace="##any" processContents="lax"/>
   </xs:complexType>
  
   <xs:element name="TraceRoute" type="v3:TraceRouteType"/>
  
   <xs:complexType name="TraceRouteType">
     <xs:sequence>
       <xs:element name="Hop" type="xs:int" minOccurs="1"/>
       <xs:element name="IPAddress" type="xs:string" minOccurs="0"/>
       <xs:element name="RTT" type="xs:int" minOccurs="0"/>
       <xs:sequence minOccurs="0">
         <xs:element ref="v3:Separator3"/>
         <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:sequence>
     <xs:anyAttribute namespace="##any" processContents="lax"/>
   </xs:complexType>
  
   <!--Separator is used for forward/backward compatiblity-->
   <xs:element name="Separator3">
     <xs:complexType></xs:complexType>
   </xs:element>
 </xs:schema>

The schema for ms-rtcp-metrics.v4.xsd is as follows:

 <?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:tns="ms-rtcp-metrics" xmlns:v2="ms-rtcp-metrics.v2" xmlns:v3="ms-rtcp-metrics.v3" xmlns:v4="ms-rtcp-metrics.v4" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="ms-rtcp-metrics.v4" elementFormDefault="qualified" version="1.2" attributeFormDefault="unqualified">
  
   <xs:element name="InitialFrameReceivedTime" type="xs:int"/>
   <xs:element name="InitialFrameSentSize" type="xs:int"/>
   <xs:element name="NumSharingStarted" type="xs:int"/>
   <xs:element name="NumRemoteControlChanges" type="xs:int"/>
  
   <xs:complexType name="AppSharingEstablishTime">
     <xs:sequence>
       <xs:element name="SignalingTime" type="xs:int"/>
       <xs:element name="MediaSetupTime" type="xs:int"/>
       <xs:element name="ProtocolConnectTime" type="xs:int"/>
     </xs:sequence>
     <xs:anyAttribute namespace="##any" processContents="lax"/>
   </xs:complexType>
  
   <xs:element name="RecvReorderBufferTotalPackets" type="xs:int" />
   <xs:element name="RecvReorderBufferReorderedPackets" type="xs:int" />
   <xs:element name="RecvReorderBufferReorderedPacketsSuccessfullyOrdered" type="xs:int" />
   <xs:element name="RecvReorderBufferPacketsDroppedDueToBufferExhaustion" type="xs:int" />
   <xs:element name="RecvReorderBufferMaxSuccessfullyOrderedExtent" type="xs:int" />
   <xs:element name="RecvReorderBufferMaxSuccessfullyOrderedLateTime" type="xs:int" />
   <xs:element name="RecvReorderBufferPacketsDroppedDueToTimeout" type="xs:int" />
  
   <xs:element name="RenderSignalLevel" type="xs:float"/>
   <xs:element name="RenderNoiseLevel" type="xs:float"/>
   <xs:element name="RenderLoopbackSignalLevel" type="xs:float"/>
  
   <xs:element name="JitterBufferSizeAvg" type="xs:int"/>
   <xs:element name="JitterBufferSizeMax" type="xs:int"/>
   <xs:element name="JitterBufferSizeMin" type="xs:int"/>
   <xs:element name="JitterBufferSizeSD" type="xs:int"/>
   <xs:element name="NetworkJitterAvg" type="xs:float"/>
   <xs:element name="NetworkJitterMax" type="xs:float"/>
   <xs:element name="NetworkJitterMin" type="xs:float"/>
   <xs:element name="NetworkJitterSD" type="xs:float"/>  
  
   <xs:element name="PacketReorderRatio" type="xs:float"/>
   <xs:element name="PacketReorderDepthAvg" type="xs:int"/>
   <xs:element name="PacketReorderDepthMax" type="xs:int"/>
  
   <xs:element name="BurstLossLength1" type="xs:float"/>
   <xs:element name="BurstLossLength2" type="xs:float"/>
   <xs:element name="BurstLossLength3" type="xs:float"/>
   <xs:element name="BurstLossLength4" type="xs:float"/>
   <xs:element name="BurstLossLength5" type="xs:float"/>
   <xs:element name="BurstLossLength6" type="xs:float"/>
   <xs:element name="BurstLossLength7" type="xs:float"/> 
   <xs:element name="BurstLossLength8OrHigher" type="xs:float"/>
  
   <xs:element name="FECRecvOnPercent" type="xs:float"/>
   <xs:element name="FECRecvDistance1" type="xs:float"/>
   <xs:element name="FECRecvDistance2" type="xs:float"/>
   <xs:element name="FECRecvDistance3" type="xs:float"/>
   <xs:element name="FECRecvDistance4" type="xs:float"/>
   <xs:element name="FECRecvDistance5" type="xs:float"/>
   <xs:element name="FECRecvDistance6" type="xs:float"/> 
   <xs:element name="FECRecvDistance7" type="xs:float"/> 
   <xs:element name="FECRecvDistance8OrHigher" type="xs:float"/>
   <xs:element name="FECRecvScheme" type="xs:int"/>
   <xs:element name="FECRecvRedundancy" type="xs:float"/>
   <xs:element name="HealerPushCount" type="xs:int"/> 
   <xs:element name="HealerPullCount" type="xs:int"/> 
  
   <xs:element name="SendMutePercent" type="xs:float"/>  
  
   <xs:element name="CaptureOffloadedEffectsAudio" type="xs:int"/> 
   <xs:element name="RenderOffloadedEffectsAudio" type="xs:int"/> 
    
   <xs:element name="WifiRadioType" type="xs:unsignedByte"/>
   <xs:element name="WifiRSSI" type="xs:int"/>
   <xs:element name="SSID" type="xs:string"/>
   <xs:element name="WifiChannel" type="xs:int"/>
   <xs:element name="ActivePowerProfile" type="xs:int"/>
   <xs:element name="WifiHandovers" type="xs:int"/>
   <xs:element name="WifiChannelSwitches" type="xs:int"/>
   <xs:element name="WifiChannelReassociations" type="xs:int"/>
   <xs:element name="RecvQoSMarking" type="xs:unsignedByte"/>
   <xs:element name="SendQoSMarking" type="xs:unsignedByte"/>
   <xs:element name="WifiRadioFrequency" type="xs:int"/>
   <xs:element name="WifiSendRate" type="xs:int"/>  
   <xs:element name="WifiReceiveRate" type="xs:int"/>
   <xs:element name="WifiRetryCount" type="xs:long"/>
   <xs:element name="WifiTransmittedFrameCount" type="xs:long"/>
   <xs:element name="WifiMaxSendSpeed" type="xs:int"/>
   <xs:element name="WifiMaxReceiveSpeed" type="xs:int"/>
   <xs:element name="WifiMTU" type="xs:int"/>
   <xs:element name="WifiSupportFlags" type="xs:int"/>
   <xs:element name="WifiStatusFlags" type="xs:int"/>
   <xs:element name="WifiTunnelType" type="xs:int"/>
   <xs:element name="WifiSignalStrength" type="xs:int"/>
   <xs:element name="WifiBatteryCharge" type="xs:int"/>
   <xs:element name="ConnectionName" type="xs:string"/>
   <xs:element name="DNSSuffix" type="xs:string"/>
       
   <xs:element name="WifiRetransmissionRate" type="xs:float"/>      
   <xs:element name="QoSMarkedRate" type="xs:float"/>
  
   <xs:element name="LastRTPSendTime" type="xs:dateTime"/>
   <xs:element name="LastRTCPSendTime" type="xs:dateTime"/>
   <xs:element name="LastRTPReceiveTime" type="xs:dateTime"/>
   <xs:element name="LastRTCPReceiveTime" type="xs:dateTime"/>
  
   <!-- Separator is used for forward/backward compatiblity -->
   <xs:element name="Separator4">
     <xs:complexType></xs:complexType>
   </xs:element>
 </xs:schema>

The schema for ms-cqf.xsd is as follows:

 <?xml version="1.0" encoding="utf-8"?>
 <xs:schema targetNamespace="ms-cqf" elementFormDefault="qualified" xmlns:mstns="ms-cqf" xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name ="CallQualityFeedbackReport" type="mstns:CallQualityFeedbackReportType"/>
   <xs:complexType name ="CallQualityFeedbackReportType">
     <xs:sequence>
       <xs:element name="ReportingUserURI" type="xs:anyURI" minOccurs="1" maxOccurs="1"/>
       <xs:element name ="Rating" type="xs:int" minOccurs="1" maxOccurs="1"/>
       <xs:element name= "Feedback" type="mstns:TextFeedbackType" minOccurs="0" maxOccurs="1"/>
       <xs:element name ="Tokens" type ="mstns:TokenCollectionType" minOccurs="0" maxOccurs="1"/>
       <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attribute name="CallId" type="xs:string" use="required"/>
     <xs:attribute name="FromTag" type="xs:string" use="required"/>
     <xs:attribute name="ToTag" type="xs:string" use="required"/>
     <xs:attribute name="Start" type="xs:dateTime"/>
     <xs:attribute name="End" type="xs:dateTime"/>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <xs:complexType name="TextFeedbackType">
     <xs:sequence>
       <xs:element name="Text" type="xs:string"/>
       <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <!--LanguageTag values from LanguageTag value defined within MS-LCID http://msdn.microsoft.com/en-us/library/cc233965.aspx -->
     <xs:attribute name="LanguageTag" type="xs:string"/>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
   <xs:complexType name ="TokenCollectionType">
     <xs:sequence>
       <xs:element name="Token" type="mstns:TokenValueType" minOccurs="1" maxOccurs="unbounded"/>
     </xs:sequence>
   </xs:complexType>  
   <xs:complexType name ="TokenValueType">
     <xs:sequence>
       <xs:element name ="Id" type="xs:int" minOccurs="1" maxOccurs="1"/>
       <xs:element name ="Value" type="xs:int" minOccurs="1" maxOccurs="1"/>
       <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>
 </xs:schema>