ONVIF requires a defined set of web services that are used by ONVIF devices and clients. Furthermore, some services are conditional, e.g., if a camera has PTZ functionality it is mandatory to provide that service in the ONVIF interface. Optional services are also defined. A product must report what services and capabilities it supports. In terms of development, it is quite straightforward since a software client can query an ONVIF device to provide a list of the services and capabilities it provides. For instance, the imaging service is an optional service and a Client can query the availability of the service on a device via the GetCapabilities method of the device management service. This means that the integrator can handle detection of what a product provides automatically in its software.