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); }
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); }
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 { } }
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); }
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); }
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); }
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); }