Example #1
0
        /// <summary>
        /// Connects to a camera.
        /// </summary>
        /// <param name="deviceServiceURL">The device service URL.</param>
        /// <param name="username">The username.</param>
        /// <param name="password">The password.</param>
        /// <returns></returns>
        public static Camera ConnectToCamera(string deviceServiceURL, string username, string password)
        {
            PasswordDigestBehavior passwordDigestBehavior = null;

            if (!String.IsNullOrWhiteSpace(username) && !String.IsNullOrWhiteSpace(password))
            {
                passwordDigestBehavior = new PasswordDigestBehavior(username, password);
            }

            Camera camera = new Camera(passwordDigestBehavior);

            IDeviceService deviceService = null;

            try
            {
                deviceService = new Services.Device.Ver10.DeviceService(camera, deviceServiceURL);
            }
            catch (System.Exception ex)
            {
                // TODO: log and create a reason why it was unable to connect
            }

            if (deviceService == null)
            {
                throw new UnableToConnectException(deviceServiceURL, username);
            }

            camera.AvailableServices = deviceService.GetServices();

            return(camera);
        }
        /// <summary>
        /// The send hello method.
        /// </summary>
        /// <param name="firstName">
        /// The first name.
        /// </param>
        /// <returns>
        /// The <see cref="string"/>.
        /// </returns>
        public string SendHello(string firstName)
        {
            // Client Proxy
            var client = new Hello_PortTypeClient("Hello_Binding");

            // Add custom behavior
            var behavior = new PasswordDigestBehavior("Username", "Password");

            client.Endpoint.Behaviors.Add(behavior);

            // Say hello
            return(client.sayHello(null, firstName));
        }
        public static ServiceReference1.MediaClient GetMedia1Client(string uri, double devideviceTimeOffset, string username = "", string password = "")
        {
            EndpointAddress             endpointAddress             = new EndpointAddress(uri);
            HttpTransportBindingElement httpTransportBindingElement = new HttpTransportBindingElement();

            httpTransportBindingElement.AuthenticationScheme = AuthenticationSchemes.Digest;

            var MessageEl = new TextMessageEncodingBindingElement();

            MessageEl.MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None);
            System.ServiceModel.Channels.CustomBinding customBinding = new System.ServiceModel.Channels.CustomBinding(MessageEl, httpTransportBindingElement);

            ServiceReference1.MediaClient media1Client = new ServiceReference1.MediaClient(customBinding, endpointAddress);

            if (username != string.Empty)
            {
                PasswordDigestBehavior behavior = new PasswordDigestBehavior(username, password, devideviceTimeOffset);
                media1Client.Endpoint.EndpointBehaviors.Add(behavior);
            }
            return(media1Client);
        }
        public static DeviceClient GetClient(string ip, int port, string username = "", string password = "")
        {
            EndpointAddress serviceAddress = new EndpointAddress(string.Format("", ip, port));

            HttpTransportBindingElement httpBindingElement = new HttpTransportBindingElement();

            httpBindingElement.AuthenticationScheme = AuthenticationSchemes.Digest;

            var messageElement = new TextMessageEncodingBindingElement();

            messageElement.MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None);
            System.ServiceModel.Channels.CustomBinding customBinding = new System.ServiceModel.Channels.CustomBinding(messageElement, httpBindingElement);

            DeviceClient deviceClient = new DeviceClient(customBinding, serviceAddress);

            if (username != string.Empty)
            {
                // Handles adding of SOAP Security header containing User Token (user, nonce, pwd digest)
                PasswordDigestBehavior behavior = new PasswordDigestBehavior(username, password);
                deviceClient.Endpoint.Behaviors.Add(behavior);
            }

            return(deviceClient);
        }
Example #5
0
        public static PTZClient GetOnvifPTZClient(string Uri, double deviceTimeOffset, string username = "", string password = "")
        {
            EndpointAddress serviceAddress = new EndpointAddress(Uri);

            HttpTransportBindingElement httpBinding = new HttpTransportBindingElement();

            httpBinding.AuthenticationScheme = AuthenticationSchemes.Digest;

            var messageElement = new TextMessageEncodingBindingElement();

            messageElement.MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None);
            CustomBinding bind = new CustomBinding(messageElement, httpBinding);

            PTZClient ptzClient = new PTZClient(bind, serviceAddress);

            if (username != string.Empty)
            {
                // Handles adding of SOAP Security header containing User Token (user, nonce, pwd digest)
                PasswordDigestBehavior behavior = new PasswordDigestBehavior(username, password);
                ptzClient.Endpoint.Behaviors.Add(behavior);
            }

            return(ptzClient);
        }
Example #6
0
        public static SubscriptionManagerClient GetSubscriptionManagerClient(string uri, double deviceTimeOffset, string username = "", string password = "") // string ip, int port, List<MessageHeader> headers)
        {
            EndpointAddress serviceAddress = new EndpointAddress(uri);                                                                                        // string.Format("http://{0}:{1}/onvif/event_service", ip, port));

            HttpTransportBindingElement httpBinding = new HttpTransportBindingElement();

            httpBinding.AuthenticationScheme = AuthenticationSchemes.Digest;

            var messageElement = new TextMessageEncodingBindingElement();

            messageElement.MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.WSAddressing10);
            CustomBinding bind = new CustomBinding(messageElement, httpBinding);

            SubscriptionManagerClient client = new SubscriptionManagerClient(bind, serviceAddress);

            if (username != string.Empty)
            {
                // Handles adding of SOAP Security header containing User Token (user, nonce, pwd digest)
                PasswordDigestBehavior behavior = new PasswordDigestBehavior(username, password, deviceTimeOffset);
                client.Endpoint.Behaviors.Add(behavior);
            }

            return(client);
        }
Example #7
0
        internal Camera(PasswordDigestBehavior passwordDigestBehavior)
        {
            this.PasswordDigestBehavior = passwordDigestBehavior;

            this.AvailableServices = new List <IService>();
        }