<?xml version="1.0"?>

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
     xmlns:wsoap="http://schemas.xmlsoap.org/wsdl/soap/"
     xmlns:xs="http://www.w3.org/2001/XMLSchema"
     xmlns:tns="http://sdk.bt.com/2007/04/Messaging/Inbound"
     xmlns:sdk="http://sdk.bt.com/2007/04/Messaging/Inbound"
     targetNamespace="http://sdk.bt.com/2007/04/Messaging/Inbound">

    <!--

        C) British Telecommunications plc, 2006, All Rights Reserved

		generated: Thu May 10 17:09:25 2007 

    -->

   <wsdl:types>
      <xs:schema elementFormDefault="qualified" 
            targetNamespace="http://sdk.bt.com/2007/04/Messaging/Inbound">

         <xs:complexType name="Message">
            <xs:sequence>
                <xs:element name="messageId" type="xs:string"/>
                <xs:element name="keyword" type="xs:string"/>
                <xs:element name="senderUri" type="xs:anyURI"/>
                <xs:element name="destinationUri" type="xs:anyURI"/>
                <xs:element name="messageText" type="xs:string"/>
                <xs:element name="receiveTime" type="xs:dateTime"/>
            </xs:sequence>
         </xs:complexType>

         <xs:complexType name="MessageDeliveryStatus">
            <xs:sequence>
                <xs:element name="destinationUri" type="xs:anyURI"/>
                <xs:element name="messageStatus" type="sdk:MessageStatus"/>
            </xs:sequence>
         </xs:complexType>

         <xs:complexType name="MessageDeliveryStatuses" >
            <xs:sequence>
               <xs:element name="messageDeliveryStatus" type="sdk:MessageDeliveryStatus" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>

         <xs:complexType name="MessageIds" >
            <xs:sequence>
               <xs:element name="messageId" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>

         <xs:simpleType name="MessageStatus">
            <xs:restriction base="xs:string">
               <xs:enumeration value="Initial"/>
               <xs:enumeration value="Sent"/>
               <xs:enumeration value="Delivered"/>
               <xs:enumeration value="Failed"/>
            </xs:restriction>
         </xs:simpleType>

         <xs:complexType name="Messages" >
            <xs:sequence>
               <xs:element name="message" type="sdk:Message" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>

         <xs:complexType name="Uris" >
            <xs:sequence>
               <xs:element name="uri" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>

        <xs:element name="clearReceivedMessages">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="messageIds" type="sdk:MessageIds"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>
        <xs:element name="clearReceivedMessagesResponse">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="clearedCount" type="xs:int"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>

        <xs:element name="getMessageDeliveryStatuses">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="messageId" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>
        <xs:element name="getMessageDeliveryStatusesResponse">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="messageDeliveryStatuses" type="sdk:MessageDeliveryStatuses"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>

        <xs:element name="getReceivedMessages">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="keyword" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>
        <xs:element name="getReceivedMessagesResponse">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="messages" type="sdk:Messages"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>

        <xs:element name="sendMessage">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="recipientUris" type="sdk:Uris"/>
                <xs:element name="messageText" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>
        <xs:element name="sendMessageResponse">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="messageId" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>

      </xs:schema>
   </wsdl:types>

   <wsdl:message name="clearReceivedMessagesRequest">
      <wsdl:part name="parameters" element="sdk:clearReceivedMessages"/>
   </wsdl:message>
   <wsdl:message name="clearReceivedMessagesResponse">
      <wsdl:part name="parameters" element="sdk:clearReceivedMessagesResponse"/>
   </wsdl:message>

   <wsdl:message name="getMessageDeliveryStatusesRequest">
      <wsdl:part name="parameters" element="sdk:getMessageDeliveryStatuses"/>
   </wsdl:message>
   <wsdl:message name="getMessageDeliveryStatusesResponse">
      <wsdl:part name="parameters" element="sdk:getMessageDeliveryStatusesResponse"/>
   </wsdl:message>

   <wsdl:message name="getReceivedMessagesRequest">
      <wsdl:part name="parameters" element="sdk:getReceivedMessages"/>
   </wsdl:message>
   <wsdl:message name="getReceivedMessagesResponse">
      <wsdl:part name="parameters" element="sdk:getReceivedMessagesResponse"/>
   </wsdl:message>

   <wsdl:message name="sendMessageRequest">
      <wsdl:part name="parameters" element="sdk:sendMessage"/>
   </wsdl:message>
   <wsdl:message name="sendMessageResponse">
      <wsdl:part name="parameters" element="sdk:sendMessageResponse"/>
   </wsdl:message>

   <wsdl:portType name="MessagingInboundInterface">
      <wsdl:operation name="clearReceivedMessages">
         <wsdl:input name="clearReceivedMessagesRequest" message="tns:clearReceivedMessagesRequest"/>
         <wsdl:output name="clearReceivedMessagesResponse" message="tns:clearReceivedMessagesResponse"/>
      </wsdl:operation>
      <wsdl:operation name="getMessageDeliveryStatuses">
         <wsdl:input name="getMessageDeliveryStatusesRequest" message="tns:getMessageDeliveryStatusesRequest"/>
         <wsdl:output name="getMessageDeliveryStatusesResponse" message="tns:getMessageDeliveryStatusesResponse"/>
      </wsdl:operation>
      <wsdl:operation name="getReceivedMessages">
         <wsdl:input name="getReceivedMessagesRequest" message="tns:getReceivedMessagesRequest"/>
         <wsdl:output name="getReceivedMessagesResponse" message="tns:getReceivedMessagesResponse"/>
      </wsdl:operation>
      <wsdl:operation name="sendMessage">
         <wsdl:input name="sendMessageRequest" message="tns:sendMessageRequest"/>
         <wsdl:output name="sendMessageResponse" message="tns:sendMessageResponse"/>
      </wsdl:operation>
   </wsdl:portType>

   <wsdl:binding name="MessagingInboundSoapBinding" type="tns:MessagingInboundInterface">
      <wsoap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
      <wsdl:operation name="clearReceivedMessages">
         <wsoap:operation soapAction="http://sdk.bt.com/2007/04/Messaging/Inbound#clearReceivedMessages"/>
         <wsdl:input name="clearReceivedMessagesRequest">
            <wsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="clearReceivedMessagesResponse">
            <wsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="getMessageDeliveryStatuses">
         <wsoap:operation soapAction="http://sdk.bt.com/2007/04/Messaging/Inbound#getMessageDeliveryStatuses"/>
         <wsdl:input name="getMessageDeliveryStatusesRequest">
            <wsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="getMessageDeliveryStatusesResponse">
            <wsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="getReceivedMessages">
         <wsoap:operation soapAction="http://sdk.bt.com/2007/04/Messaging/Inbound#getReceivedMessages"/>
         <wsdl:input name="getReceivedMessagesRequest">
            <wsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="getReceivedMessagesResponse">
            <wsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="sendMessage">
         <wsoap:operation soapAction="http://sdk.bt.com/2007/04/Messaging/Inbound#sendMessage"/>
         <wsdl:input name="sendMessageRequest">
            <wsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="sendMessageResponse">
            <wsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
   </wsdl:binding>

   <wsdl:service name="MessagingInboundService">
      <wsdl:port name="MessagingInboundEndpoint" binding="tns:MessagingInboundSoapBinding">
         <wsoap:address location="http://localhost/endpoint/MessagingInbound/2007/04"/>
      </wsdl:port>
   </wsdl:service>

</wsdl:definitions>
