<?xml version="1.0" encoding="utf-8"?>

<wsdl:definitions targetNamespace="urn:icsy:venice:wsdl:voip:supp" name="VM"
	xmlns:tns="urn:icsy:venice:wsdl:voip:supp"
	xmlns:basic="urn:icsy:venice:types:basic"
	xmlns:domain="urn:icsy:venice:types:domain"
	xmlns:voip="urn:icsy:venice:types:voip"
	xmlns:am="urn:icsy:venice:types:voip:supp:VM"
	xmlns:faults="urn:icsy:venice:types:faults"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">

	<!-- ========== Types ============ -->

	<wsdl:types>

		<xsd:schema elementFormDefault="qualified">
			<xsd:import namespace="urn:icsy:venice:types:basic" schemaLocation="http://www.v-grid.info/types/basic.xsd"/>
			<xsd:import namespace="urn:icsy:venice:types:domain" schemaLocation="http://www.v-grid.info/types/domain.xsd"/>
			<xsd:import namespace="urn:icsy:venice:types:voip" schemaLocation="http://www.v-grid.info/types/voip.xsd"/>
			<xsd:import namespace="urn:icsy:venice:types:voip:supp:VM" schemaLocation="http://www.v-grid.info/types/voip/supp/VM.xsd"/>
			<xsd:import namespace="urn:icsy:venice:types:faults" schemaLocation="http://www.v-grid.info/types/faults.xsd"/>
		</xsd:schema>

	</wsdl:types>

	<!-- ========== Messages ============ -->

	<wsdl:message name="Message_VM_getCallCount">
		<wsdl:documentation>The request message for the operation getCallCount().</wsdl:documentation>
		<wsdl:part name="sso" type="domain:SSOInformation"/>
	</wsdl:message>

	<wsdl:message name="Message_VM_getCallCountResponse">
		<wsdl:documentation>The response message for the operation getCallCount().</wsdl:documentation>
		<wsdl:part name="result" type="xsd:int"/>
	</wsdl:message>

	<wsdl:message name="Message_VM_getCalls">
		<wsdl:documentation>The request message for the operation getCalls().</wsdl:documentation>
		<wsdl:part name="sso" type="domain:SSOInformation"/>
	</wsdl:message>

	<wsdl:message name="Message_VM_getCallsResponse">
		<wsdl:documentation>The response message for the operation getCalls().</wsdl:documentation>
		<wsdl:part name="result" type="am:VMCallInformationArray"/>
	</wsdl:message>

	<wsdl:message name="Message_VM_play">
		<wsdl:documentation>The request message for the operation play().</wsdl:documentation>
		<wsdl:part name="sso" type="domain:SSOInformation"/>
		<wsdl:part name="callID" type="voip:CallID"/>
		<wsdl:part name="clientConfiguration" type="voip:ClientConfiguration"/>
	</wsdl:message>

	<wsdl:message name="Message_VM_playResponse">
		<wsdl:documentation>The response message for the operation play().</wsdl:documentation>
		<wsdl:part name="result" type="basic:String"/>
	</wsdl:message>

	<wsdl:message name="Message_VM_delete">
		<wsdl:documentation>The request message for the operation delete().</wsdl:documentation>
		<wsdl:part name="sso" type="domain:SSOInformation"/>
		<wsdl:part name="callID" type="voip:CallID"/>
	</wsdl:message>

	<wsdl:message name="Message_VM_deleteResponse">
		<wsdl:documentation>The response message for the operation delete().</wsdl:documentation>
		<wsdl:part name="result" type="xsd:boolean"/>
	</wsdl:message>

	<wsdl:message name="Message_VM_isEnabled">
		<wsdl:documentation>The request message for the operation isEnabled().</wsdl:documentation>
		<wsdl:part name="sso" type="domain:SSOInformation"/>
	</wsdl:message>

	<wsdl:message name="Message_VM_isEnabledResponse">
		<wsdl:documentation>The response message for the operation isEnabled().</wsdl:documentation>
		<wsdl:part name="result" type="xsd:boolean"/>
	</wsdl:message>

	<wsdl:message name="Message_VM_setEnabled">
		<wsdl:documentation>The request message for the operation setEnabled().</wsdl:documentation>
		<wsdl:part name="sso" type="domain:SSOInformation"/>
		<wsdl:part name="enabled" type="xsd:boolean"/>
	</wsdl:message>

	<wsdl:message name="Message_VM_setEnabledResponse">
		<wsdl:documentation>The response message for the operation setEnabled().</wsdl:documentation>
	</wsdl:message>

	<wsdl:message name="Message_VM_hasNewMessage">
		<wsdl:documentation>The request message for the operation hasNewMessage().</wsdl:documentation>
		<wsdl:part name="sso" type="domain:SSOInformation"/>
	</wsdl:message>

	<wsdl:message name="Message_VM_hasNewMessageResponse">
		<wsdl:documentation>The response message for the operation hasNewMessage().</wsdl:documentation>
		<wsdl:part name="result" type="xsd:boolean"/>
	</wsdl:message>

	<!-- ========== Fault Messages ============ -->

	<wsdl:message name="FaultMessage_VM_AuthorizationFault">
		<wsdl:part name="fault" element="faults:AuthorizationFault"/>
	</wsdl:message>

	<wsdl:message name="FaultMessage_VM_IllegalArgumentFault">
		<wsdl:part name="fault" element="faults:IllegalArgumentFault"/>
	</wsdl:message>

	<wsdl:message name="FaultMessage_VM_ServiceMigratedFault">
		<wsdl:part name="fault" element="faults:ServiceMigratedFault"/>
	</wsdl:message>

	<wsdl:message name="FaultMessage_VM_ServiceNotReadyFault">
		<wsdl:part name="fault" element="faults:ServiceNotReadyFault"/>
	</wsdl:message>

	<wsdl:message name="FaultMessage_VM_ServiceLimitReachedFault">
		<wsdl:part name="fault" element="faults:ServiceLimitReachedFault"/>
	</wsdl:message>

	<!-- ========== Port Types ============ -->

	<wsdl:portType name="VMPortType">

		<wsdl:operation name="getCallCount" parameterOrder="sso">
			<wsdl:documentation>Get number of calls.</wsdl:documentation>
			<wsdl:input message="tns:Message_VM_getCallCount"/>
			<wsdl:output message="tns:Message_VM_getCallCountResponse"/>
			<wsdl:fault message="tns:FaultMessage_VM_AuthorizationFault" name="AuthorizationFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_IllegalArgumentFault" name="IllegalArgumentFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceMigratedFault" name="ServiceMigratedFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceNotReadyFault" name="ServiceNotReadyFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceLimitReachedFault" name="ServiceLimitReachedFault"/>
		</wsdl:operation>

		<wsdl:operation name="getCalls" parameterOrder="sso">
			<wsdl:documentation>Get calls.</wsdl:documentation>
			<wsdl:input message="tns:Message_VM_getCalls"/>
			<wsdl:output message="tns:Message_VM_getCallsResponse"/>
			<wsdl:fault message="tns:FaultMessage_VM_AuthorizationFault" name="AuthorizationFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_IllegalArgumentFault" name="IllegalArgumentFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceMigratedFault" name="ServiceMigratedFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceNotReadyFault" name="ServiceNotReadyFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceLimitReachedFault" name="ServiceLimitReachedFault"/>
		</wsdl:operation>

		<wsdl:operation name="play" parameterOrder="sso callID clientConfiguration">
			<wsdl:documentation>Playback a call.</wsdl:documentation>
			<wsdl:input message="tns:Message_VM_play"/>
			<wsdl:output message="tns:Message_VM_playResponse"/>
			<wsdl:fault message="tns:FaultMessage_VM_AuthorizationFault" name="AuthorizationFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_IllegalArgumentFault" name="IllegalArgumentFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceMigratedFault" name="ServiceMigratedFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceNotReadyFault" name="ServiceNotReadyFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceLimitReachedFault" name="ServiceLimitReachedFault"/>
		</wsdl:operation>

		<wsdl:operation name="delete" parameterOrder="sso callID">
			<wsdl:documentation>Delete a call.</wsdl:documentation>
			<wsdl:input message="tns:Message_VM_delete"/>
			<wsdl:output message="tns:Message_VM_deleteResponse"/>
			<wsdl:fault message="tns:FaultMessage_VM_AuthorizationFault" name="AuthorizationFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_IllegalArgumentFault" name="IllegalArgumentFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceMigratedFault" name="ServiceMigratedFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceNotReadyFault" name="ServiceNotReadyFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceLimitReachedFault" name="ServiceLimitReachedFault"/>
		</wsdl:operation>

		<wsdl:operation name="isEnabled" parameterOrder="sso">
			<wsdl:documentation>Check if enabled.</wsdl:documentation>
			<wsdl:input message="tns:Message_VM_isEnabled"/>
			<wsdl:output message="tns:Message_VM_isEnabledResponse"/>
			<wsdl:fault message="tns:FaultMessage_VM_AuthorizationFault" name="AuthorizationFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_IllegalArgumentFault" name="IllegalArgumentFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceMigratedFault" name="ServiceMigratedFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceNotReadyFault" name="ServiceNotReadyFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceLimitReachedFault" name="ServiceLimitReachedFault"/>
		</wsdl:operation>

		<wsdl:operation name="setEnabled" parameterOrder="sso enabled">
			<wsdl:documentation>Set state enabled.</wsdl:documentation>
			<wsdl:input message="tns:Message_VM_setEnabled"/>
			<wsdl:output message="tns:Message_VM_setEnabledResponse"/>
			<wsdl:fault message="tns:FaultMessage_VM_AuthorizationFault" name="AuthorizationFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_IllegalArgumentFault" name="IllegalArgumentFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceMigratedFault" name="ServiceMigratedFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceNotReadyFault" name="ServiceNotReadyFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceLimitReachedFault" name="ServiceLimitReachedFault"/>
		</wsdl:operation>

		<wsdl:operation name="hasNewMessage" parameterOrder="sso">
			<wsdl:documentation>Check if there are new messages.</wsdl:documentation>
			<wsdl:input message="tns:Message_VM_hasNewMessage"/>
			<wsdl:output message="tns:Message_VM_hasNewMessageResponse"/>
			<wsdl:fault message="tns:FaultMessage_VM_AuthorizationFault" name="AuthorizationFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_IllegalArgumentFault" name="IllegalArgumentFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceMigratedFault" name="ServiceMigratedFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceNotReadyFault" name="ServiceNotReadyFault"/>
			<wsdl:fault message="tns:FaultMessage_VM_ServiceLimitReachedFault" name="ServiceLimitReachedFault"/>
		</wsdl:operation>

	</wsdl:portType>

</wsdl:definitions>

