# ex_oxvif v0.1.0 - Table of Contents > ONVIF IP camera control for Elixir: discovery, device, media, PTZ, imaging and events, backed by the Rust oxvif client through a non-blocking NIF. ## Pages - [ExOxvif](readme.md) - [Changelog](changelog.md) - [Releasing](releasing.md) ## Modules - API - [ExOxvif](ExOxvif.md): ONVIF IP camera control for Elixir, backed by the Rust [oxvif](https://github.com/smiti1642/oxvif) client. - [ExOxvif.Device](ExOxvif.Device.md): Device management service. - [ExOxvif.Events](ExOxvif.Events.md): Events service: pull-point subscriptions. - [ExOxvif.Imaging](ExOxvif.Imaging.md): Imaging service: focus. - [ExOxvif.Media](ExOxvif.Media.md): Media (Media1) service: profiles and stream URIs. - [ExOxvif.PTZ](ExOxvif.PTZ.md): PTZ service: pan, tilt and zoom. - Types - [ExOxvif.DeviceInfo](ExOxvif.DeviceInfo.md): Result of `GetDeviceInformation`. - [ExOxvif.DiscoveredDevice](ExOxvif.DiscoveredDevice.md): A device that answered a WS-Discovery probe. - [ExOxvif.Error](ExOxvif.Error.md): An error returned by any `ExOxvif` call. - [ExOxvif.Events.Message](ExOxvif.Events.Message.md): One event notification. `:source` and `:data` hold the message's `SimpleItem` name/value pairs. - [ExOxvif.Events.Subscription](ExOxvif.Events.Subscription.md): A pull-point subscription. Pass `:reference_url` to `ExOxvif.Events.pull_messages/3`. - [ExOxvif.Imaging.Status](ExOxvif.Imaging.Status.md): Current focus position and movement state. - [ExOxvif.MediaProfile](ExOxvif.MediaProfile.md): A Media1 profile. Pass `:token` to the media and PTZ calls, and `:video_source_token` to the imaging calls. - [ExOxvif.MediaUri](ExOxvif.MediaUri.md): A stream (RTSP) or snapshot (HTTP) URI. `:timeout` is an ISO 8601 duration; `"PT0S"` means it does not expire. - [ExOxvif.PTZ.Configuration](ExOxvif.PTZ.Configuration.md): A PTZ configuration, as returned by `GetConfigurations`. - [ExOxvif.PTZ.ConfigurationOptions](ExOxvif.PTZ.ConfigurationOptions.md): Result of `GetConfigurationOptions`: the accepted PTZ timeout range as ISO 8601 durations. The supported coordinate spaces and their ranges are on the node; see `ExOxvif.PTZ.nodes/2`. - [ExOxvif.PTZ.Node](ExOxvif.PTZ.Node.md): A physical PTZ unit and the coordinate spaces it supports. - [ExOxvif.PTZ.Preset](ExOxvif.PTZ.Preset.md): A stored PTZ preset. - [ExOxvif.PTZ.SpaceRange](ExOxvif.PTZ.SpaceRange.md): A PTZ coordinate space and its range. `:y_range` is `nil` for zoom spaces. - [ExOxvif.PTZ.Speed](ExOxvif.PTZ.Speed.md): Default PTZ speed, normalised to `0.0..1.0`. - [ExOxvif.PTZ.Status](ExOxvif.PTZ.Status.md): Current PTZ position and movement state. Positions are in the device's generic space: pan and tilt in `-1.0..1.0`, zoom in `0.0..1.0`. - [ExOxvif.Service](ExOxvif.Service.md): One entry of `GetServices`. - [ExOxvif.Session](ExOxvif.Session.md): A connected ONVIF device, returned by `ExOxvif.connect/2`. - [ExOxvif.SystemDateTime](ExOxvif.SystemDateTime.md): Result of `GetSystemDateAndTime`. `:utc_unix` is the device clock in Unix seconds, or `nil` when the device did not report it.