<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:icsy:venice:types:voip" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:icsy:venice:types:voip" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
	<simpleType name="CallStatus">
		<annotation>
			<documentation>The status of a call may have these values.</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="preparing"/>
			<enumeration value="connecting"/>
			<enumeration value="talking"/>
			<enumeration value="finishing"/>
			<enumeration value="finished"/>
		</restriction>
	</simpleType>
	<simpleType name="AudioCodecName">
		<annotation>
			<documentation>Audio codec names to construct an audio codec.</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="PCMA"/>
			<enumeration value="PCMU"/>
			<enumeration value="GSM"/>
			<enumeration value="GSM-EFR"/>
			<enumeration value="G722"/>
			<enumeration value="G723"/>
			<enumeration value="G726-16"/>
			<enumeration value="G726-24"/>
			<enumeration value="G726-32"/>
			<enumeration value="G726-40"/>
			<enumeration value="G728"/>
			<enumeration value="G729"/>
			<enumeration value="G729D"/>
			<enumeration value="G729E"/>
			<enumeration value="DVI4"/>
			<enumeration value="VDVI"/>
			<enumeration value="L8"/>
			<enumeration value="L16"/>
			<enumeration value="LPC"/>
			<enumeration value="QCELP"/>
			<enumeration value="MPA"/>
			<enumeration value="RED"/>
		</restriction>
	</simpleType>
	<complexType name="Caller">
		<annotation>
			<documentation>A caller is someone calling a callee via VoiceIP.</documentation>
		</annotation>
		<simpleContent>
			<extension base="string"/>
		</simpleContent>
	</complexType>
	<element name="Caller" type="tns:Caller">
		<annotation>
			<documentation>A caller is someone calling a callee via VoiceIP.</documentation>
		</annotation>
	</element>
	<complexType name="CallerArray">
		<annotation>
			<documentation>An array of Caller.</documentation>
		</annotation>
		<sequence>
			<element name="contents" type="tns:Caller" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<element name="CallerArray" type="tns:CallerArray">
		<annotation>
			<documentation>An array of Caller.</documentation>
		</annotation>
	</element>
	<complexType name="Callee">
		<annotation>
			<documentation>A callee is someone that can be called via VoiceIP.</documentation>
		</annotation>
		<simpleContent>
			<extension base="string"/>
		</simpleContent>
	</complexType>
	<element name="Callee" type="tns:Callee">
		<annotation>
			<documentation>A callee is someone that can be called via VoiceIP.</documentation>
		</annotation>
	</element>
	<complexType name="CalleeArray">
		<annotation>
			<documentation>An array of Callee.</documentation>
		</annotation>
		<sequence>
			<element name="contents" type="tns:Callee" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<element name="CalleeArray" type="tns:CalleeArray">
		<annotation>
			<documentation>An array of Callee.</documentation>
		</annotation>
	</element>
	<complexType name="CallID">
		<annotation>
			<documentation>A unique call id to identify a call.</documentation>
		</annotation>
		<simpleContent>
			<extension base="string"/>
		</simpleContent>
	</complexType>
	<element name="CallID" type="tns:CallID">
		<annotation>
			<documentation>A unique call id to identify a call.</documentation>
		</annotation>
	</element>
	<complexType name="AudioCodec">
		<annotation>
			<documentation>An audio codec to use for RTP transmission.</documentation>
		</annotation>
		<all>
			<element name="name" type="tns:AudioCodecName" nillable="false">
				<annotation>
					<documentation>Name of the audio coces (as defined in RFC 3551)</documentation>
				</annotation>
			</element>
			<element name="channels" type="int" default="1" nillable="false">
				<annotation>
					<documentation>Number of channels (as defined in RFC 3551)</documentation>
				</annotation>
			</element>
			<element name="samplerate" type="double" nillable="false">
				<annotation>
					<documentation>Sampling rate of the audio codec; a value of zero means "variable".</documentation>
				</annotation>
			</element>
		</all>
	</complexType>
	<element name="AudioCodec" type="tns:AudioCodec">
		<annotation>
			<documentation>An audio codec to use for RTP transmission.</documentation>
		</annotation>
	</element>
	<complexType name="CallInformation">
		<annotation>
			<documentation>The call information needed by the participants to make a phone call.</documentation>
		</annotation>
		<all>
			<element name="rtpIPAddress" type="string" nillable="false">
				<annotation>
					<documentation>The RTP address of the other participant.</documentation>
				</annotation>
			</element>
			<element name="rtpSendPort" type="int" nillable="false">
				<annotation>
					<documentation>The RTP send port of the other participant.</documentation>
				</annotation>
			</element>
			<element name="rtpReceivePort" type="int" nillable="false">
				<annotation>
					<documentation>The RTP port where the other participant wants to receive audio data.</documentation>
				</annotation>
			</element>
			<element name="audioCodec" type="tns:AudioCodec" nillable="false"/>
			<element name="callInitiated" type="dateTime" nillable="false">
				<annotation>
					<documentation>The exact time the server has received a request for initiating a call.</documentation>
				</annotation>
			</element>
			<element name="callEstablished" type="dateTime">
				<annotation>
					<documentation>The exact time the server has successfully established the call.</documentation>
				</annotation>
			</element>
			<element name="connectedTo" type="string" minOccurs="0">
				<annotation>
					<documentation>The identification of the other participant.</documentation>
				</annotation>
			</element>
		</all>
	</complexType>
	<element name="CallInformation" type="tns:CallInformation">
		<annotation>
			<documentation>The call information needed by the participants to make a phone call.</documentation>
		</annotation>
	</element>
	<complexType name="ClientConfiguration">
		<annotation>
			<documentation>The client configuration of a client is needed by the service.</documentation>
		</annotation>
		<sequence>
			<element name="rtpIPAddress" type="string" nillable="false">
				<annotation>
					<documentation>The IP address of the client.</documentation>
				</annotation>
			</element>
			<element name="rtpSendPort" type="int" nillable="false">
				<annotation>
					<documentation>The port number used for sending RTP data.</documentation>
				</annotation>
			</element>
			<element name="rtpReceivePort" type="int" nillable="false">
				<annotation>
					<documentation>The port number used for receiving RTP data.</documentation>
				</annotation>
			</element>
			<element name="notificationIPAddress" type="string" nillable="false">
				<annotation>
					<documentation>The IP address where the client is listening for service events.</documentation>
				</annotation>
			</element>
			<element name="notificationPort" type="int" nillable="false">
				<annotation>
					<documentation>The port number where the client is listening for service events.</documentation>
				</annotation>
			</element>
			<element name="audioCodecs" type="tns:AudioCodec" nillable="false" maxOccurs="unbounded">
				<annotation>
					<documentation>A list of audio codecs the client can handle.</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<element name="ClientConfiguration" type="tns:ClientConfiguration">
		<annotation>
			<documentation>The client configuration of a client is needed by the service.</documentation>
		</annotation>
	</element>
	<complexType name="ExecutionEnvironment">
		<annotation>
			<documentation>The environment a supplementary service needs to execute its functionality.</documentation>
		</annotation>
		<sequence>
			<element name="voipService" type="anyURI" nillable="false"/>
			<element name="voipServiceDomain" type="string" nillable="false"/>
			<element name="caller" type="tns:Caller"/>
			<element name="callee" type="tns:Callee"/>
			<element name="callid" type="tns:CallID"/>
			<element name="callInitiated" type="dateTime"/>
		</sequence>
	</complexType>
	<element name="ExecutionEnvironment" type="tns:ExecutionEnvironment">
		<annotation>
			<documentation>The environment a supplementary service needs to execute its functionality.</documentation>
		</annotation>
	</element>
</schema>

