<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<xsd:element name="unimrcpserver">
		<xsd:annotation>
			<xsd:documentation>UniMRCP server document</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="properties" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Generic properties</xsd:documentation>
					</xsd:annotation>
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="ip" minOccurs="0">
								<xsd:complexType>
									<xsd:attribute name="type" type="xsd:string"/>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="ext-ip" minOccurs="0">
								<xsd:complexType>
									<xsd:attribute name="type" type="xsd:string"/>
								</xsd:complexType>
							</xsd:element>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
				<xsd:element name="components" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Common components</xsd:documentation>
					</xsd:annotation>
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="resource-factory" minOccurs="0">
								<xsd:annotation>
									<xsd:documentation>Factory of MRCP resources</xsd:documentation>
								</xsd:annotation>
								<xsd:complexType>
									<xsd:sequence maxOccurs="unbounded">
										<xsd:element name="resource">
											<xsd:complexType>
												<xsd:attribute name="id" type="xsd:string" use="required"/>
												<xsd:attribute name="enable" type="xsd:boolean" use="optional"/>
											</xsd:complexType>
										</xsd:element>
									</xsd:sequence>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="sip-uas" minOccurs="0" maxOccurs="unbounded">
								<xsd:annotation>
									<xsd:documentation>SIP signaling agent</xsd:documentation>
								</xsd:annotation>
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="sip-ip" type="xsd:string" minOccurs="0"/>
										<xsd:element name="sip-ext-ip" type="xsd:string" minOccurs="0"/>
										<xsd:element name="sip-port" type="xsd:short"/>
										<xsd:element name="sip-transport" type="xsd:string"/>
										<xsd:element name="force-destination" type="xsd:boolean" default="false" minOccurs="0"/>
										<xsd:element name="ua-name" type="xsd:string" minOccurs="0"/>
										<xsd:element name="sdp-origin" type="xsd:string" minOccurs="0"/>
                    								<xsd:element name="sip-t1" type="xsd:long" minOccurs="0" />
										<xsd:element name="sip-t2" type="xsd:long" minOccurs="0" />
										<xsd:element name="sip-t4" type="xsd:long" minOccurs="0" />
										<xsd:element name="sip-t1x64" type="xsd:long" minOccurs="0" />
									</xsd:sequence>
									<xsd:attribute name="id" type="xsd:string" use="required"/>
									<xsd:attribute name="type" type="xsd:string" use="required"/>
									<xsd:attribute name="enable" type="xsd:boolean" use="optional"/>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="rtsp-uas" minOccurs="0" maxOccurs="unbounded">
								<xsd:annotation>
									<xsd:documentation>RTSP signaling agent</xsd:documentation>
								</xsd:annotation>
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="rtsp-ip" type="xsd:string" minOccurs="0"/>
										<xsd:element name="rtsp-ext-ip" type="xsd:string" minOccurs="0"/>
										<xsd:element name="rtsp-port" type="xsd:string"/>
										<xsd:element name="resource-map">
											<xsd:complexType>
												<xsd:sequence>
													<xsd:element name="param" maxOccurs="unbounded">
														<xsd:complexType>
															<xsd:attribute name="name" type="xsd:string" use="required"/>
															<xsd:attribute name="value" type="xsd:string" use="required"/>
														</xsd:complexType>
													</xsd:element>
												</xsd:sequence>
											</xsd:complexType>
										</xsd:element>
										<xsd:element name="max-connection-count" type="xsd:short" minOccurs="0"/>
										<xsd:element name="sdp-origin" type="xsd:string" minOccurs="0"/>
									</xsd:sequence>
									<xsd:attribute name="id" type="xsd:string" use="required"/>
									<xsd:attribute name="type" type="xsd:string" use="required"/>
									<xsd:attribute name="enable" type="xsd:boolean" use="optional"/>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="mrcpv2-uas" minOccurs="0" maxOccurs="unbounded">
								<xsd:annotation>
									<xsd:documentation>MRCPv2 connection agent</xsd:documentation>
								</xsd:annotation>
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="mrcp-ip" type="xsd:string" minOccurs="0"/>
										<xsd:element name="mrcp-port" type="xsd:string"/>
										<xsd:element name="max-connection-count" type="xsd:short" minOccurs="0"/>
										<xsd:element name="force-new-connection" type="xsd:boolean" minOccurs="0"/>
										<xsd:element name="rx-buffer-size" type="xsd:long" minOccurs="0"/>
										<xsd:element name="tx-buffer-size" type="xsd:long" minOccurs="0"/>
									</xsd:sequence>
									<xsd:attribute name="id" type="xsd:string" use="required"/>
									<xsd:attribute name="enable" type="xsd:boolean" use="optional"/>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="media-engine" minOccurs="0" maxOccurs="unbounded">
								<xsd:annotation>
									<xsd:documentation>Media processing engine</xsd:documentation>
								</xsd:annotation>
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="realtime-rate" type="xsd:short" minOccurs="0"/>
									</xsd:sequence>
									<xsd:attribute name="id" type="xsd:string" use="required"/>
									<xsd:attribute name="enable" type="xsd:boolean" use="optional"/>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="rtp-factory" minOccurs="0" maxOccurs="unbounded">
								<xsd:annotation>
									<xsd:documentation>Factory of RTP terminations</xsd:documentation>
								</xsd:annotation>
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="rtp-ip" type="xsd:string" minOccurs="0"/>
										<xsd:element name="rtp-ext-ip" type="xsd:string" minOccurs="0"/>
										<xsd:element name="rtp-port-min" type="xsd:short"/>
										<xsd:element name="rtp-port-max" type="xsd:short"/>
									</xsd:sequence>
									<xsd:attribute name="id" type="xsd:string" use="required"/>
									<xsd:attribute name="enable" type="xsd:boolean" use="optional"/>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="plugin-factory" minOccurs="0">
								<xsd:annotation>
									<xsd:documentation>Factory of plugins (MRCP engines)</xsd:documentation>
								</xsd:annotation>
								<xsd:complexType>
									<xsd:sequence maxOccurs="unbounded">
										<xsd:element name="engine">
											<xsd:complexType>
												<xsd:sequence>
													<xsd:element name="max-channel-count" minOccurs="0"/>
													<xsd:element name="param" minOccurs="0" maxOccurs="unbounded">
														<xsd:complexType>
															<xsd:attribute name="name" type="xsd:string" use="required"/>
															<xsd:attribute name="value" type="xsd:string" use="required"/>
														</xsd:complexType>
													</xsd:element>
												</xsd:sequence>
												<xsd:attribute name="id" type="xsd:string" use="required"/>
												<xsd:attribute name="name" type="xsd:string" use="required"/>
												<xsd:attribute name="enable" type="xsd:boolean" use="optional"/>
											</xsd:complexType>
										</xsd:element>
									</xsd:sequence>
								</xsd:complexType>
							</xsd:element>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
				<xsd:element name="settings" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Settings</xsd:documentation>
					</xsd:annotation>
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="rtp-settings" minOccurs="0" maxOccurs="unbounded">
								<xsd:annotation>
									<xsd:documentation>RTP settings</xsd:documentation>
								</xsd:annotation>
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="jitter-buffer" minOccurs="0">
											<xsd:complexType>
												<xsd:sequence>
													<xsd:element name="playout-delay" type="xsd:long"/>
													<xsd:element name="max-playout-delay" type="xsd:long"/>
												</xsd:sequence>
											</xsd:complexType>
										</xsd:element>
										<xsd:element name="ptime" type="xsd:long" minOccurs="0"/>
										<xsd:element name="codecs">
											<xsd:complexType>
												<xsd:simpleContent>
													<xsd:extension base="xsd:string">
														<xsd:attribute name="own-preference" type="xsd:boolean" use="optional"/>
													</xsd:extension>
												</xsd:simpleContent>
											</xsd:complexType>
										</xsd:element>
										<xsd:element name="rtcp" minOccurs="0">
											<xsd:complexType>
												<xsd:sequence>
													<xsd:element name="rtcp-bye" type="xsd:int"/>
													<xsd:element name="tx-interval" type="xsd:long"/>
													<xsd:element name="rx-resolution" type="xsd:long"/>
												</xsd:sequence>
												<xsd:attribute name="enable" type="xsd:boolean" use="optional"/>
											</xsd:complexType>
										</xsd:element>
									</xsd:sequence>
									<xsd:attribute name="id" type="xsd:string" use="required"/>
									<xsd:attribute name="enable" type="xsd:boolean" use="optional"/>
								</xsd:complexType>
							</xsd:element>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
				<xsd:element name="profiles" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Profiles</xsd:documentation>
					</xsd:annotation>
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="mrcpv2-profile" minOccurs="0" maxOccurs="unbounded">
								<xsd:annotation>
									<xsd:documentation>MRCPv2 profile</xsd:documentation>
								</xsd:annotation>
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="sip-uas" type="xsd:string"/>
										<xsd:element name="mrcpv2-uas" type="xsd:string"/>
										<xsd:element name="media-engine" type="xsd:string"/>
										<xsd:element name="rtp-factory" type="xsd:string"/>
										<xsd:element name="rtp-settings" type="xsd:string"/>
									</xsd:sequence>
									<xsd:attribute name="id" type="xsd:string" use="required"/>
									<xsd:attribute name="enable" type="xsd:boolean" use="optional"/>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="mrcpv1-profile" minOccurs="0" maxOccurs="unbounded">
								<xsd:annotation>
									<xsd:documentation>MRCPv1 profile</xsd:documentation>
								</xsd:annotation>
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="rtsp-uas" type="xsd:string"/>
										<xsd:element name="media-engine" type="xsd:string"/>
										<xsd:element name="rtp-factory" type="xsd:string"/>
										<xsd:element name="rtp-settings" type="xsd:string"/>
									</xsd:sequence>
									<xsd:attribute name="id" type="xsd:string" use="required"/>
									<xsd:attribute name="enable" type="xsd:boolean" use="optional"/>
								</xsd:complexType>
							</xsd:element>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
			</xsd:sequence>
			<xsd:attribute name="version" type="xsd:string" use="required"/>
			<xsd:attribute name="subfolder" type="xsd:string" use="optional"/>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>