Esempio n. 1
0
        public byte[] BuildProbeMatches(string[] scopes, bool onvif20, string[] xAddrs, string relateTo)
        {
            Proxies.WSDiscovery.ProbeMatchesType probeMatches = new Proxies.WSDiscovery.ProbeMatchesType();

            probeMatches.ProbeMatch = new Proxies.WSDiscovery.ProbeMatchType[1];
            Proxies.WSDiscovery.ProbeMatchType probeMatch = new Proxies.WSDiscovery.ProbeMatchType();

            // Scopes
            probeMatch.Scopes = BuildScopes(scopes, null);

            // Types
            XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();

            probeMatch.Types = BuildTypes(onvif20, ref namespaces);

            // EndpointReference
            probeMatch.EndpointReference = BuildEndpointReference();

            // XAddrs
            probeMatch.XAddrs = BuildXAddrs(xAddrs);

            // MetadataVersion
            probeMatch.MetadataVersion = 0;

            probeMatches.ProbeMatch[0] = probeMatch;

            DiscoveryHeaderBuilder header = new DiscoveryHeaderBuilder();

            header.OrigingMessageId = relateTo;

            byte[] msg = SoapBuilder.BuildMessage(probeMatches, Encoding.UTF8, header, namespaces);

            return(msg);
        }
Esempio n. 2
0
        public byte[] BuildHello(
            string[] scopes, string types, XmlQualifiedName[] typesNamespaces, string[] xAddrs, uint metadataVersion)
        {
            Proxies.WSDiscovery.HelloType hello = new Proxies.WSDiscovery.HelloType();

            // Scopes
            hello.Scopes = BuildScopes(scopes, null);

            // Types
            hello.Types = types;

            // EndpointReference
            hello.EndpointReference = BuildEndpointReference();

            // XAddrs
            hello.XAddrs = BuildXAddrs(xAddrs);

            // MetadataVersion
            hello.MetadataVersion = metadataVersion;

            byte[] msg = SoapBuilder.BuildMessage(
                hello, Encoding.UTF8, new DiscoveryHeaderBuilder(), new XmlSerializerNamespaces(typesNamespaces));

            return(msg);
        }
Esempio n. 3
0
 private void OnDataReceived(byte[] data, IPEndPoint sender)
 {
     try
     {
         SoapMessage <WSD.ProbeType> probe = SoapBuilder.ParseMessage <WSD.ProbeType>(data, null);
         if (OnProbeReceived != null)
         {
             DiscoverProbeEventArgs args = new DiscoverProbeEventArgs();
             args.Sender = sender;
             args.Probe  = probe.Object;
             OnProbeReceived(this, args);
             if (args.Response != null)
             {
                 XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
                 namespaces.Add("dn", DiscoveryUtils.ONVIF_NETWORK_WSDL_URL);
                 DiscoveryHeaderBuilder header = new DiscoveryHeaderBuilder();
                 header.OrigingMessageId = GetMessageId(probe.Header);
                 byte[] response = SoapBuilder.BuildMessage(args.Response, Encoding.UTF8, header, namespaces);
                 Send(response);
             }
         }
     }
     catch
     {
     }
 }
Esempio n. 4
0
        public void SendHello()
        {
            WSD.HelloType           hello      = new WSD.HelloType();
            XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();

            namespaces.Add("dn", DiscoveryUtils.ONVIF_NETWORK_WSDL_URL);
            hello.EndpointReference               = new WSD.EndpointReferenceType();
            hello.EndpointReference.Address       = new WSD.AttributedURI();
            hello.EndpointReference.Address.Value = _uuid;
            hello.Types       = "dn:NetworkVideoTransmitter";
            hello.Scopes      = new WSD.ScopesType();
            hello.Scopes.Text = _scopes;
            hello.XAddrs      = ServiceAddress;

            byte[] data = SoapBuilder.BuildMessage(hello, Encoding.UTF8, new DiscoveryHeaderBuilder(), namespaces);
            Send(data);
        }
Esempio n. 5
0
        static void Main(string[] args)
        {
            ProbeType probe = new ProbeType();

            probe.Types          = "dn:VideoTransmitter";
            probe.Scopes         = new ScopesType();
            probe.Scopes.MatchBy = "trololo";

            XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();

            namespaces.Add("dn", "http://www.onvif.org/ver10/network/wsdl");
            DiscoveryHeaderBuilder header = new DiscoveryHeaderBuilder();

            byte[] soap = SoapBuilder.BuildMessage(probe, Encoding.UTF8, header, namespaces);

            ICollection <XmlElement> headers;
            ProbeType parsed = SoapBuilder.ParseMessage <ProbeType>(soap, GetSchemas(), out headers);
        }
Esempio n. 6
0
        public byte[] BuildProbeMatches(string[] scopes, bool onvif20, string[] xAddrs, string relateTo)
        {
            WSD.ProbeMatchesType probeMatches = new WSD.ProbeMatchesType();

            probeMatches.ProbeMatch = new WSD.ProbeMatchType[1];
            WSD.ProbeMatchType probeMatch = new WSD.ProbeMatchType();

            probeMatches.Xmlns = new XmlSerializerNamespaces();
            probeMatches.Xmlns.Add("dis", "http://schemas.xmlsoap.org/ws/2005/04/discovery");
            probeMatch.Xmlns = new XmlSerializerNamespaces();
            probeMatch.Xmlns.Add("", "http://www.onvif.org/ver10/device/wsdl");

            // Scopes
            probeMatch.Scopes = BuildScopes(scopes, null);

            // Types
            XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();

            namespaces.Add("dis", "http://schemas.xmlsoap.org/ws/2005/04/discovery");
            probeMatch.Types = BuildTypes(onvif20, ref namespaces);

            // EndpointReference
            probeMatch.EndpointReference = BuildEndpointReference();

            // XAddrs
            probeMatch.XAddrs = BuildXAddrs(xAddrs);

            // MetadataVersion
            probeMatch.MetadataVersion = 0;

            probeMatches.ProbeMatch[0] = probeMatch;

            DiscoveryHeaderBuilder header = new DiscoveryHeaderBuilder();

            header.OrigingMessageId = relateTo;

            byte[] msg = SoapBuilder.BuildMessage(probeMatches, Encoding.UTF8, header, namespaces);

            return(msg);
        }
Esempio n. 7
0
        public byte[] BuildBye(string[] scopes, string types, XmlQualifiedName[] typesNamespaces, string[] xAddrs, uint metadataVersion)
        {
            WSD.ByeType bye = new WSD.ByeType();

            // Scopes
            bye.Scopes = BuildScopes(scopes, null);

            // Types
            bye.Types = types;

            // EndpointReference
            bye.EndpointReference = BuildEndpointReference();

            // XAddrs
            bye.XAddrs = BuildXAddrs(xAddrs);

            // MetadataVersion
            bye.MetadataVersion = metadataVersion;

            byte[] msg = SoapBuilder.BuildMessage(
                bye, Encoding.UTF8, new DiscoveryHeaderBuilder(), new XmlSerializerNamespaces(typesNamespaces));

            return(msg);
        }