<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.globalmmcs.org/xgsp-av"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.globalmmcs.org/xgsp-av" >
<!-- ActivateSession & DeactivateSession Methods -->
<xs:element name="ActiveSession">
<xs:annotation>
<xs:documentation>activate/deactive
Audio/Video Session in A/V Session Server</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="SessionID"
type="xs:string"/>
<xs:element name="Active"
type="xs:boolean"/>
<xs:element name="Communities"
type="AGCommunity"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ActiveSessionReply">
<xs:annotation>
<xs:documentation>reply to the
ActiveSession command</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="SessionID"/>
<xs:element name="Result"/>
<xs:element name="Reason" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Create & Destroy VideoMixer Methods -->
<xs:element name="VideoMixer">
<xs:annotation>
<xs:documentation>create/Destory a
VideoMixer</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="SessionID" type="xs:string"/>
<xs:element name="MixerID" type="xs:string"/>
<xs:element name="Active" type="xs:boolean">
<xs:annotation>
<xs:documentation>true:
create/modify this mixer; false: destroy this mixer</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="Client" maxOccurs="4"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SetVideoMixerReply">
<xs:annotation>
<xs:documentation>reply to the VideoMixer</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="SessionID" type="xs:string"/>
<xs:element name="Result" type="xs:string"/>
<xs:element name="Reason" type="xs:string"
minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Join/Leave Session Methods -->
<xs:element name="JoinSession">
<xs:complexType>
<xs:sequence>
<xs:element name="ClientID" type="xs:string"/>
<xs:element name="SessionID" type="xs:string"/>
<xs:element name="ClientMediaDes" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element ref="MediaDes" maxOccurs="2"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="LeaveSession">
<xs:complexType>
<xs:sequence>
<xs:element name="ClientID" type="xs:string"/>
<xs:element name="SessionID" type="xs:string"/>
<xs:element name="LeaveReason" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SessionSignalResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="ClientID" type="xs:string"/>
<xs:element name="ResponseType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Join-Reply"/>
<xs:enumeration value="Leave-Reply"/>
<xs:enumeration value="Modify-Reply"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ResponseResult">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="OK"/>
<xs:enumeration value="Refuse"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SessionMedia" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element ref="MediaDes" maxOccurs="2"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="StreamEvent">
<xs:annotation>
<xs:documentation>AV Stream Event</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="EventType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration
value="NewStreamEvent"/>
<xs:enumeration
value="ByeEvent"/>
<xs:enumeration
value="PassiveToActiveEvent"/>
<xs:enumeration
value="ActiveToPassiveEvent"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MediaType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration
value="video"/>
<xs:enumeration
value="audio"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="UserName" type="xs:string"/>
<xs:element name="SSRC" type="xs:string"/>
<xs:element name="Description" type="xs:string"/>
<xs:element name="ImagePath" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Request Stream Messages -->
<
xs:element name="RequestAllStream"> <xs:annotation> <xs:documentation>a late-join client requests for the complete stream list</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="SessionID" type="xs:string"/> <xs:element name="ClientID" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element><xs:element name="RequestAllStreamReply"> <xs:complexType> <xs:sequence> <xs:element name="SessionID" type="xs:string"/> <xs:element name="ClientID" type="xs:string"/> <xs:element name="StreamList"> <xs:complexType> <xs:sequence> <xs:element ref="StreamEvent" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element>
<!-- Video Stream Selection Message -->
<xs:element name="VideoSourceSelection"> <xs:complexType> <xs:sequence> <xs:element name="SessionID" type="xs:string"/> <xs:element name="ClientID" type="xs:string"/> <xs:element name="Active" type="xs:boolean"> <xs:annotation> <xs:documentation>true: means subscribe; false: mean unsubscribe</xs:documentation> </xs:annotation> </xs:element> <xs:element name="VideoSource"> <xs:complexType> <xs:sequence> <xs:element name="UserName" type="xs:string"/> <xs:element name="SSRC" type="xs:string"/> <xs:element name="Description" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element>
<!-- Audio Stream Selection Message -->
<xs:element name="AudioSourceMute"> <xs:annotation> <xs:documentation>Mute/unmute audio streams</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="SessionID" type="xs:string"/> <xs:element name="ClientID" type="xs:string"/> <xs:element name="Mute" type="xs:boolean"> <xs:annotation> <xs:documentation>true: mute/ false: unmute</xs:documentation> </xs:annotation></xs:element> <xs:element name="AudioSource"> <xs:complexType> <xs:sequence> <xs:element name="UserName" type="xs:string"/> <xs:element name="SSRC" type="xs:string"/> <xs:element name="Description" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element>
<xs:element name="SetRole"> <xs:annotation> <xs:documentation>Set the roles in A/V Session </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="SessionID"/> <xs:element name="AVApplication"> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:enumeration value="Video"/> <xs:enumeration value="Audio"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="UserID" type="xs:string"/> <xs:element name="Role"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Audio-Speaker"/> <xs:enumeration value="Audio-Listener"/> <xs:enumeration value="Video-Presenter"/> <xs:enumeration value="Video-View"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> </xs:element>
<xs:element name="SessionStatusReport">
<xs:annotation>
<xs:documentation>session server
report </xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="SessionReport"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SessionReport">
<xs:annotation>
<xs:documentation>session report
content</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="SessionID" type="xs:string"/>
<xs:element name="SessionStatusInfo">
<xs:complexType>
<xs:sequence>
<xs:element
name="CurParticipant"/>
<xs:element
name="Pastparticipant"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>