The following classes are available globally.

  • This file contains methods, data structures and callbacks for the ONVIF Core Profile.

    See more



    open class RVS_ONVIF_Core : ProfileHandlerProtocol
  • This class implements the Profile S functionality.

    See more



    open class RVS_ONVIF_Profile_S : ProfileHandlerProtocol
  • This is an ONVIF Swift Framework driver.

    The driver is designed to be usable for MacOS, iOS and tvOS.

    This was initially inspired by the ONVIFCamera library, by Rémy Virin, but has gone far past his implementation.

    It uses SOAPEngine, by Danilo Priore to handle the stuff below the session layer.

    If you want to use this on a device (as opposed to the simulator), you need to purchase a SOAPEngine license from the Priore Group (see URI, above).

    This relies on a delegate pattern, as opposed to the closure pattern that Rémy Virin’s library used.


    The RVS_ONVIF Framework is a “hub and spokes” framework, in a similar pattern to the ONVIF specification.

    There is a “core,” and a bunch of “profiles,” as defined by the ONVIF specification.

    The profiles (including the core) are the “spokes” of the framework, and are instantiated as needed to address the needs of the device to which the framework instance is dedicated.

    You instantiate one RVS_ONVIF instance to connect to one device. You can have as many instances as you want, for multiple devices, but each instance corresponds to only one device.

    This framework does not handle device discovery. You are expected to give it an IP number and TCP port. It will handle both IPv4 and IPv6.


    Each delegate call is optional. This is done by extending the delegate protocol with “do nothing” default methods.

    There can only be one Delegate.

    All Delegate methods are called in the main thread. There are only a couple of methods for errors, successful connection, and successful disconnection.


    We use “smart dispatchers” to manage the conversation with the driver. The client instantiates profile dispatchers, and registers them with the driver.

    The driver then uses these to deliver responses, and the client uses them to send requests.

    View the README file for more comprehensive documentation.

    See more



    open class RVS_ONVIF : NSObject, SOAPEngineDelegate