diff --git a/onvif/proxy/lib/ONVIF/PTZ/PTZ.pm b/onvif/proxy/lib/ONVIF/PTZ/PTZ.pm new file mode 100644 index 000000000..5457b7e5c --- /dev/null +++ b/onvif/proxy/lib/ONVIF/PTZ/PTZ.pm @@ -0,0 +1,654 @@ + +package ONVIF::PTZ::Typemaps::PTZ; +use strict; +use warnings; + +our $typemap_1 = { + 'GetConfigurationsResponse/PTZConfiguration/DefaultRelativePanTiltTranslationSpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'SetConfiguration/PTZConfiguration/PanTiltLimits/Range/YRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'AbsoluteMove/Position/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail/PresetToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/RelativePanTiltTranslationSpace/YRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetTour/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetPresetTourResponse/PresetTour/TourSpot/PresetDetail/TypeExtension' => 'ONVIF::PTZ::Types::PTZPresetTourTypeExtension', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail' => 'ONVIF::PTZ::Types::PTZPresetTourPresetDetailOptions', + 'GetPresetToursResponse/PresetTour/StartingCondition/Direction' => 'ONVIF::PTZ::Types::PTZPresetTourDirection', + 'GetPresetTourOptionsResponse/Options/StartingCondition' => 'ONVIF::PTZ::Types::PTZPresetTourStartingConditionOptions', + 'SetConfiguration/PTZConfiguration/PanTiltLimits/Range/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationResponse/PTZConfiguration/Name' => 'ONVIF::PTZ::Types::Name', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/AbsolutePanTiltPositionSpace' => 'ONVIF::PTZ::Types::Space2DDescription', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/DefaultPTZSpeed/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ContinuousZoomVelocitySpace' => 'ONVIF::PTZ::Types::Space1DDescription', + 'GetConfigurationOptions' => 'ONVIF::PTZ::Elements::GetConfigurationOptions', + 'GetNodesResponse' => 'ONVIF::PTZ::Elements::GetNodesResponse', + 'ModifyPresetTour/PresetTour/StartingCondition/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourStartingConditionExtension', + 'GetNodeResponse/PTZNode/Extension' => 'ONVIF::PTZ::Types::PTZNodeExtension', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/RelativePanTiltTranslationSpace/YRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetConfigurationsResponse/PTZConfiguration/PanTiltLimits' => 'ONVIF::PTZ::Types::PanTiltLimits', + 'GetPresetToursResponse/PresetTour/Status/CurrentTourSpot/PresetDetail/PresetToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetServiceCapabilitiesResponse/Capabilities' => 'ONVIF::PTZ::Types::Capabilities', + 'GetConfigurationResponse/PTZConfiguration/Extension/PTControlDirection/Extension' => 'ONVIF::PTZ::Types::PTControlDirectionExtension', + 'Stop' => 'ONVIF::PTZ::Elements::Stop', + 'GetPresetToursResponse/PresetTour/StartingCondition/RecurringDuration' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'GetPresetTourResponse/PresetTour/TourSpot/Speed/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'ModifyPresetTour/PresetTour/StartingCondition/RecurringTime' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ZoomSpeedSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetsResponse' => 'ONVIF::PTZ::Elements::GetPresetsResponse', + 'GetConfigurationsResponse/PTZConfiguration/Extension/PTControlDirection/Extension' => 'ONVIF::PTZ::Types::PTControlDirectionExtension', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/ZoomLimits/Range/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'SetPreset/PresetName' => 'SOAP::WSDL::XSD::Typelib::Builtin::string', + 'SetPreset/PresetToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetNodeResponse/PTZNode/MaximumNumberOfPresets' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'SetHomePositionResponse' => 'ONVIF::PTZ::Elements::SetHomePositionResponse', + 'GetStatusResponse/PTZStatus/Error' => 'SOAP::WSDL::XSD::Typelib::Builtin::string', + 'SetConfiguration/PTZConfiguration/Extension/PTControlDirection/Extension' => 'ONVIF::PTZ::Types::PTControlDirectionExtension', + 'ContinuousMoveResponse' => 'ONVIF::PTZ::Elements::ContinuousMoveResponse', + 'GetPresetToursResponse/PresetTour/StartingCondition/RecurringTime' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'ModifyPresetTour/PresetTour/TourSpot/Speed/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetNode' => 'ONVIF::PTZ::Elements::GetNode', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/Extension/PTControlDirection/Reverse' => 'ONVIF::PTZ::Types::Reverse', + 'GetConfiguration/PTZConfigurationToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/AbsolutePanTiltPositionSpace/YRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail/PanTiltPositionSpace/YRange' => 'ONVIF::PTZ::Types::FloatRange', + 'ModifyPresetTour/PresetTour/TourSpot/Speed' => 'ONVIF::PTZ::Types::PTZSpeed', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/AbsoluteZoomPositionSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetPresetTourResponse/PresetTour/TourSpot/StayTime' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'GetConfigurationsResponse/PTZConfiguration/DefaultAbsolutePantTiltPositionSpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/AbsoluteZoomPositionSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'RemovePresetTour/PresetTourToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'SetPreset' => 'ONVIF::PTZ::Elements::SetPreset', + 'SetConfiguration/PTZConfiguration' => 'ONVIF::PTZ::Types::PTZConfiguration', + 'GetConfigurationsResponse/PTZConfiguration/ZoomLimits/Range/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'ModifyPresetTourResponse' => 'ONVIF::PTZ::Elements::ModifyPresetTourResponse', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/AbsoluteZoomPositionSpace' => 'ONVIF::PTZ::Types::Space1DDescription', + 'RelativeMove/Speed/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetConfigurationsResponse/PTZConfiguration/Name' => 'ONVIF::PTZ::Types::Name', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/Extension/PTControlDirection/EFlip/Mode' => 'ONVIF::PTZ::Types::EFlipMode', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/AbsolutePanTiltPositionSpace/YRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/AbsoluteZoomPositionSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/RelativeZoomTranslationSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/PTControlDirection/Reverse/Mode' => 'ONVIF::PTZ::Types::ReverseMode', + 'GetConfigurationResponse/PTZConfiguration/PanTiltLimits/Range/YRange' => 'ONVIF::PTZ::Types::FloatRange', + 'SetConfiguration/PTZConfiguration/PanTiltLimits/Range/YRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationResponse/PTZConfiguration/PanTiltLimits/Range/YRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetToursResponse/PresetTour/TourSpot/PresetDetail' => 'ONVIF::PTZ::Types::PTZPresetTourPresetDetail', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ZoomSpeedSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'SetConfiguration/PTZConfiguration/DefaultContinuousPanTiltVelocitySpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetPresetToursResponse' => 'ONVIF::PTZ::Elements::GetPresetToursResponse', + 'SetPresetResponse' => 'ONVIF::PTZ::Elements::SetPresetResponse', + 'GetPresetTourResponse/PresetTour/Name' => 'ONVIF::PTZ::Types::Name', + 'SendAuxiliaryCommand' => 'ONVIF::PTZ::Elements::SendAuxiliaryCommand', + 'GetConfigurationsResponse/PTZConfiguration/PanTiltLimits/Range/YRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/RelativePanTiltTranslationSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'RelativeMoveResponse' => 'ONVIF::PTZ::Elements::RelativeMoveResponse', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/AbsolutePanTiltPositionSpace' => 'ONVIF::PTZ::Types::Space2DDescription', + 'AbsoluteMove' => 'ONVIF::PTZ::Elements::AbsoluteMove', + 'GotoPreset/Speed' => 'ONVIF::PTZ::Types::PTZSpeed', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ContinuousZoomVelocitySpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'ModifyPresetTour/PresetTour/Name' => 'ONVIF::PTZ::Types::Name', + 'SetConfiguration/PTZConfiguration/PanTiltLimits' => 'ONVIF::PTZ::Types::PanTiltLimits', + 'GetConfigurationResponse/PTZConfiguration/Extension/PTControlDirection/Reverse' => 'ONVIF::PTZ::Types::Reverse', + 'ModifyPresetTour/PresetTour/Status/CurrentTourSpot/Speed' => 'ONVIF::PTZ::Types::PTZSpeed', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/AbsolutePanTiltPositionSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/Extension/PTControlDirection/Reverse/Mode' => 'ONVIF::PTZ::Types::ReverseMode', + 'ModifyPresetTour/PresetTour/TourSpot/Speed/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'AbsoluteMoveResponse' => 'ONVIF::PTZ::Elements::AbsoluteMoveResponse', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/RelativePanTiltTranslationSpace/YRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetConfigurationResponse/PTZConfiguration/DefaultPTZTimeout' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'SendAuxiliaryCommand/AuxiliaryData' => 'ONVIF::PTZ::Types::AuxiliaryData', + 'CreatePresetTour/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetPresetToursResponse/PresetTour/TourSpot/PresetDetail/PTZPosition/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetPresetToursResponse/PresetTour/TourSpot/Speed/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/RelativePanTiltTranslationSpace/YRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetPresetToursResponse/PresetTour/Status/CurrentTourSpot/PresetDetail/PTZPosition/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetConfigurationResponse/PTZConfiguration/NodeToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'SetConfiguration/PTZConfiguration/NodeToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'SetConfiguration/PTZConfiguration/PanTiltLimits/Range' => 'ONVIF::PTZ::Types::Space2DDescription', + 'ModifyPresetTour/PresetTour/AutoStart' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/PanTiltSpeedSpace' => 'ONVIF::PTZ::Types::Space1DDescription', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ContinuousZoomVelocitySpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetConfigurationsResponse/PTZConfiguration/Extension/PTControlDirection/Reverse' => 'ONVIF::PTZ::Types::Reverse', + 'GetPresetToursResponse/PresetTour/TourSpot/PresetDetail/PTZPosition' => 'ONVIF::PTZ::Types::PTZVector', + 'GetPresetTourResponse/PresetTour/Status/CurrentTourSpot' => 'ONVIF::PTZ::Types::PTZPresetTourSpot', + 'Stop/PanTilt' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', + 'Fault' => 'SOAP::WSDL::SOAP::Typelib::Fault11', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/AbsoluteZoomPositionSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationResponse/PTZConfiguration/ZoomLimits/Range/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNode/NodeToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/RelativePanTiltTranslationSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetConfigurationResponse/PTZConfiguration/PanTiltLimits/Range' => 'ONVIF::PTZ::Types::Space2DDescription', + 'GetServiceCapabilities' => 'ONVIF::PTZ::Elements::GetServiceCapabilities', + 'GetConfigurationResponse/PTZConfiguration/Extension/PTControlDirection/EFlip' => 'ONVIF::PTZ::Types::EFlip', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/PTControlDirection' => 'ONVIF::PTZ::Types::PTControlDirectionOptions', + 'GetConfigurationResponse/PTZConfiguration/PanTiltLimits/Range/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetNodesResponse/PTZNode/Extension/SupportedPresetTour/PTZPresetTourOperation' => 'ONVIF::PTZ::Types::PTZPresetTourOperation', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/AbsoluteZoomPositionSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/RelativePanTiltTranslationSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetPresetTour/PresetTourToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetConfigurationsResponse/PTZConfiguration/ZoomLimits/Range/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/AbsolutePanTiltPositionSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetNodeResponse/PTZNode/Extension/Extension' => 'ONVIF::PTZ::Types::PTZNodeExtension2', + 'GetNodesResponse/PTZNode/HomeSupported' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', + 'GotoHomePosition/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetPresetTourResponse/PresetTour/TourSpot/PresetDetail/PTZPosition' => 'ONVIF::PTZ::Types::PTZVector', + 'GotoPreset/Speed/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/AbsolutePanTiltPositionSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'Fault/detail' => 'SOAP::WSDL::XSD::Typelib::Builtin::string', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/PanTiltLimits' => 'ONVIF::PTZ::Types::PanTiltLimits', + 'GetCompatibleConfigurations' => 'ONVIF::PTZ::Elements::GetCompatibleConfigurations', + 'SetConfiguration/PTZConfiguration/Name' => 'ONVIF::PTZ::Types::Name', + 'SetConfiguration/PTZConfiguration/UseCount' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/AbsoluteZoomPositionSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/ZoomLimits' => 'ONVIF::PTZ::Types::ZoomLimits', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ContinuousPanTiltVelocitySpace/YRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/RelativePanTiltTranslationSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationsResponse/PTZConfiguration/DefaultPTZSpeed/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ContinuousPanTiltVelocitySpace/YRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/AbsoluteZoomPositionSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetConfigurationsResponse/PTZConfiguration/PanTiltLimits/Range/YRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ContinuousPanTiltVelocitySpace/YRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'SetConfiguration/PTZConfiguration/PanTiltLimits/Range/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/AbsolutePanTiltPositionSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetPresetTourResponse/PresetTour/StartingCondition/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourStartingConditionExtension', + 'SetConfiguration/PTZConfiguration/DefaultPTZSpeed' => 'ONVIF::PTZ::Types::PTZSpeed', + 'GetConfigurationResponse/PTZConfiguration/PanTiltLimits/Range/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationResponse/PTZConfiguration/Extension' => 'ONVIF::PTZ::Types::PTZConfigurationExtension', + 'GetNodesResponse/PTZNode/MaximumNumberOfPresets' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail/PanTiltPositionSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationResponse/PTZConfiguration/DefaultRelativeZoomTranslationSpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'RemovePresetResponse' => 'ONVIF::PTZ::Elements::RemovePresetResponse', + 'GetConfigurationResponse/PTZConfiguration/UseCount' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'GetPresetToursResponse/PresetTour/Status/CurrentTourSpot' => 'ONVIF::PTZ::Types::PTZPresetTourSpot', + 'GetPresetTourResponse/PresetTour/Status/CurrentTourSpot/PresetDetail/Home' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/AbsolutePanTiltPositionSpace/YRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetTourOptionsResponse/Options/StartingCondition/RecurringDuration/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'ModifyPresetTour/PresetTour/TourSpot/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourSpotExtension', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ContinuousPanTiltVelocitySpace/YRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetsResponse/Preset/Name' => 'ONVIF::PTZ::Types::Name', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/RelativeZoomTranslationSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationsResponse/PTZConfiguration/ZoomLimits/Range' => 'ONVIF::PTZ::Types::Space1DDescription', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/PanTiltSpeedSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetPresetToursResponse/PresetTour/TourSpot/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourSpotExtension', + 'SendAuxiliaryCommand/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ZoomSpeedSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetPresetToursResponse/PresetTour/TourSpot/StayTime' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'GetConfigurationsResponse/PTZConfiguration/NodeToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'RemovePresetTourResponse' => 'ONVIF::PTZ::Elements::RemovePresetTourResponse', + 'SetConfiguration/PTZConfiguration/Extension/PTControlDirection/EFlip/Mode' => 'ONVIF::PTZ::Types::EFlipMode', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail/PanTiltPositionSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetPresetTourOptionsResponse/Options/StartingCondition/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourStartingConditionOptionsExtension', + 'GetConfigurationResponse/PTZConfiguration/PanTiltLimits' => 'ONVIF::PTZ::Types::PanTiltLimits', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ZoomSpeedSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'ModifyPresetTour/PresetTour' => 'ONVIF::PTZ::Types::PresetTour', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ContinuousPanTiltVelocitySpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetCompatibleConfigurations/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/PanTiltLimits/Range/YRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GotoPreset/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetPresets/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetPresetTourOptionsResponse/Options/StartingCondition/RecurringTime/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'GetCompatibleConfigurationsResponse' => 'ONVIF::PTZ::Elements::GetCompatibleConfigurationsResponse', + 'GetPresetToursResponse/PresetTour/StartingCondition' => 'ONVIF::PTZ::Types::PTZPresetTourStartingCondition', + 'GetPresetTourResponse/PresetTour/Status/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourStatusExtension', + 'ModifyPresetTour' => 'ONVIF::PTZ::Elements::ModifyPresetTour', + 'ModifyPresetTour/PresetTour/Status/CurrentTourSpot/PresetDetail/PresetToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'SendAuxiliaryCommandResponse/AuxiliaryResponse' => 'ONVIF::PTZ::Types::AuxiliaryData', + 'GetPresetToursResponse/PresetTour/Status/State' => 'ONVIF::PTZ::Types::PTZPresetTourState', + 'GotoPresetResponse' => 'ONVIF::PTZ::Elements::GotoPresetResponse', + 'GotoHomePositionResponse' => 'ONVIF::PTZ::Elements::GotoHomePositionResponse', + 'RemovePresetTour' => 'ONVIF::PTZ::Elements::RemovePresetTour', + 'GetConfigurationResponse/PTZConfiguration/PanTiltLimits/Range/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/PanTiltSpeedSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'CreatePresetTour' => 'ONVIF::PTZ::Elements::CreatePresetTour', + 'GetPresetTourResponse/PresetTour/Status/State' => 'ONVIF::PTZ::Types::PTZPresetTourState', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ContinuousPanTiltVelocitySpace' => 'ONVIF::PTZ::Types::Space2DDescription', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ZoomSpeedSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/AbsoluteZoomPositionSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'ModifyPresetTour/PresetTour/Status/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourStatusExtension', + 'GetPresetTourOptionsResponse' => 'ONVIF::PTZ::Elements::GetPresetTourOptionsResponse', + 'GetPresetTourOptionsResponse/Options/TourSpot/StayTime/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'SetConfiguration/PTZConfiguration/Extension/PTControlDirection/Reverse/Mode' => 'ONVIF::PTZ::Types::ReverseMode', + 'GetPresetTourResponse/PresetTour/Status/CurrentTourSpot/PresetDetail/PTZPosition/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetConfigurationsResponse/PTZConfiguration/ZoomLimits/Range/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'SetConfigurationResponse' => 'ONVIF::PTZ::Elements::SetConfigurationResponse', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/RelativePanTiltTranslationSpace' => 'ONVIF::PTZ::Types::Space2DDescription', + 'GetConfigurationsResponse/PTZConfiguration/PanTiltLimits/Range/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/AbsoluteZoomPositionSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'SetConfiguration/PTZConfiguration/DefaultContinuousZoomVelocitySpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetConfiguration' => 'ONVIF::PTZ::Elements::GetConfiguration', + 'GetConfigurationResponse/PTZConfiguration/DefaultAbsoluteZoomPositionSpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'AbsoluteMove/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetPresetTourResponse/PresetTour/TourSpot/PresetDetail' => 'ONVIF::PTZ::Types::PTZPresetTourPresetDetail', + 'ModifyPresetTour/PresetTour/TourSpot/PresetDetail/PTZPosition' => 'ONVIF::PTZ::Types::PTZVector', + 'SetConfiguration/PTZConfiguration/ZoomLimits/Range/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/RelativePanTiltTranslationSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ZoomSpeedSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GotoPreset/Speed/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/DefaultAbsolutePantTiltPositionSpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'SetConfiguration/PTZConfiguration/Extension' => 'ONVIF::PTZ::Types::PTZConfigurationExtension', + 'GetPresetTourResponse/PresetTour/TourSpot/Speed' => 'ONVIF::PTZ::Types::PTZSpeed', + 'GetPresetToursResponse/PresetTour/TourSpot/Speed' => 'ONVIF::PTZ::Types::PTZSpeed', + 'GetConfigurationResponse/PTZConfiguration/ZoomLimits' => 'ONVIF::PTZ::Types::ZoomLimits', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ContinuousZoomVelocitySpace' => 'ONVIF::PTZ::Types::Space1DDescription', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail/ZoomPositionSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/ZoomLimits/Range/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetPresetTourResponse/PresetTour/Status/CurrentTourSpot/StayTime' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'SetConfiguration/PTZConfiguration/Extension/PTControlDirection' => 'ONVIF::PTZ::Types::PTControlDirection', + 'SetPresetResponse/PresetToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'SetConfiguration/PTZConfiguration/DefaultRelativeZoomTranslationSpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/DefaultPTZTimeout' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/RelativeZoomTranslationSpace' => 'ONVIF::PTZ::Types::Space1DDescription', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/AbsoluteZoomPositionSpace' => 'ONVIF::PTZ::Types::Space1DDescription', + 'ModifyPresetTour/PresetTour/StartingCondition/Direction' => 'ONVIF::PTZ::Types::PTZPresetTourDirection', + 'GotoHomePosition' => 'ONVIF::PTZ::Elements::GotoHomePosition', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/DefaultRelativePanTiltTranslationSpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ContinuousPanTiltVelocitySpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'RelativeMove/Speed' => 'ONVIF::PTZ::Types::PTZSpeed', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ZoomSpeedSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationOptionsResponse' => 'ONVIF::PTZ::Elements::GetConfigurationOptionsResponse', + 'GetConfigurations' => 'ONVIF::PTZ::Elements::GetConfigurations', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/AbsolutePanTiltPositionSpace/YRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ContinuousPanTiltVelocitySpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ContinuousPanTiltVelocitySpace/YRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/AbsoluteZoomPositionSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetTourResponse/PresetTour/StartingCondition' => 'ONVIF::PTZ::Types::PTZPresetTourStartingCondition', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ContinuousPanTiltVelocitySpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'SetHomePosition/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/ZoomLimits/Range' => 'ONVIF::PTZ::Types::Space1DDescription', + 'GetPresetToursResponse/PresetTour/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourExtension', + 'GetConfigurationResponse/PTZConfiguration/Extension/Extension' => 'ONVIF::PTZ::Types::PTZConfigurationExtension2', + 'GetConfigurationResponse/PTZConfiguration/Extension/PTControlDirection' => 'ONVIF::PTZ::Types::PTControlDirection', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ContinuousPanTiltVelocitySpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodeResponse/PTZNode/HomeSupported' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', + 'AbsoluteMove/Position' => 'ONVIF::PTZ::Types::PTZVector', + 'RemovePreset/PresetToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/AbsolutePanTiltPositionSpace/YRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetStatusResponse/PTZStatus/MoveStatus' => 'ONVIF::PTZ::Types::PTZMoveStatus', + 'GetConfigurationsResponse/PTZConfiguration/Extension/PTControlDirection/EFlip' => 'ONVIF::PTZ::Types::EFlip', + 'SetConfiguration/PTZConfiguration/DefaultRelativePanTiltTranslationSpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/PanTiltSpeedSpace' => 'ONVIF::PTZ::Types::Space1DDescription', + 'SetConfiguration/PTZConfiguration/DefaultAbsoluteZoomPositionSpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ContinuousPanTiltVelocitySpace/YRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetStatus/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/RelativeZoomTranslationSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'ModifyPresetTour/PresetTour/TourSpot/PresetDetail/PTZPosition/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ContinuousZoomVelocitySpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ContinuousZoomVelocitySpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/UseCount' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/PanTiltLimits/Range' => 'ONVIF::PTZ::Types::Space2DDescription', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ContinuousZoomVelocitySpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'StopResponse' => 'ONVIF::PTZ::Elements::StopResponse', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ContinuousZoomVelocitySpace' => 'ONVIF::PTZ::Types::Space1DDescription', + 'GetPresetTourResponse/PresetTour/Status/CurrentTourSpot/Speed/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/PTControlDirection/Extension' => 'ONVIF::PTZ::Types::PTControlDirectionOptionsExtension', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/AbsolutePanTiltPositionSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'ModifyPresetTour/PresetTour/Status/CurrentTourSpot/PresetDetail/TypeExtension' => 'ONVIF::PTZ::Types::PTZPresetTourTypeExtension', + 'GetPresetTourResponse/PresetTour/Status' => 'ONVIF::PTZ::Types::PTZPresetTourStatus', + 'GetConfigurationsResponse/PTZConfiguration/Extension/Extension' => 'ONVIF::PTZ::Types::PTZConfigurationExtension2', + 'ModifyPresetTour/PresetTour/Status/CurrentTourSpot/Speed/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetPresetToursResponse/PresetTour/Status/CurrentTourSpot/Speed' => 'ONVIF::PTZ::Types::PTZSpeed', + 'GetStatus' => 'ONVIF::PTZ::Elements::GetStatus', + 'GetConfigurationResponse/PTZConfiguration/DefaultRelativePanTiltTranslationSpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetPresetToursResponse/PresetTour/Status/CurrentTourSpot/Speed/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetPresetTourResponse/PresetTour/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourExtension', + 'GetConfigurationResponse/PTZConfiguration/DefaultAbsolutePantTiltPositionSpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/RelativePanTiltTranslationSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/PTZTimeout/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ContinuousZoomVelocitySpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetPresetToursResponse/PresetTour/AutoStart' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', + 'GetStatusResponse' => 'ONVIF::PTZ::Elements::GetStatusResponse', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ContinuousZoomVelocitySpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/DefaultContinuousPanTiltVelocitySpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/Extension/Extension' => 'ONVIF::PTZ::Types::PTZConfigurationExtension2', + 'GetNodesResponse/PTZNode/AuxiliaryCommands' => 'ONVIF::PTZ::Types::AuxiliaryData', + 'SetPreset/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'ContinuousMove/Velocity' => 'ONVIF::PTZ::Types::PTZSpeed', + 'GetPresetToursResponse/PresetTour/Status/CurrentTourSpot/PresetDetail/PTZPosition' => 'ONVIF::PTZ::Types::PTZVector', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ContinuousPanTiltVelocitySpace/YRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'ContinuousMove/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetConfigurationsResponse/PTZConfiguration/DefaultContinuousZoomVelocitySpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail/ZoomPositionSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetPresetToursResponse/PresetTour/TourSpot/PresetDetail/Home' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', + 'GetPresetToursResponse/PresetTour/TourSpot/PresetDetail/PresetToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ZoomSpeedSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetConfigurationResponse' => 'ONVIF::PTZ::Elements::GetConfigurationResponse', + 'GotoHomePosition/Speed/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'ModifyPresetTour/PresetTour/Status/State' => 'ONVIF::PTZ::Types::PTZPresetTourState', + 'GetPresetTourOptionsResponse/Options/StartingCondition/RecurringTime/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/AbsolutePanTiltPositionSpace/YRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail/PanTiltPositionSpace/YRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodes' => 'ONVIF::PTZ::Elements::GetNodes', + 'GetPresetTourOptionsResponse/Options/StartingCondition/RecurringDuration/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'SetConfiguration/PTZConfiguration/ZoomLimits/Range/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetPresetToursResponse/PresetTour/TourSpot/PresetDetail/TypeExtension' => 'ONVIF::PTZ::Types::PTZPresetTourTypeExtension', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/RelativeZoomTranslationSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'CreatePresetTourResponse' => 'ONVIF::PTZ::Elements::CreatePresetTourResponse', + 'GetPresetTourResponse/PresetTour/TourSpot/Speed/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/Extension/PTControlDirection' => 'ONVIF::PTZ::Types::PTControlDirection', + 'ModifyPresetTour/PresetTour/Status/CurrentTourSpot/PresetDetail' => 'ONVIF::PTZ::Types::PTZPresetTourPresetDetail', + 'GetPresetToursResponse/PresetTour/Status/CurrentTourSpot/Speed/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'ContinuousMove/Velocity/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'SetConfiguration/PTZConfiguration/PanTiltLimits/Range/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail/ZoomPositionSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/RelativeZoomTranslationSpace' => 'ONVIF::PTZ::Types::Space1DDescription', + 'GetPresetTourResponse/PresetTour/Status/CurrentTourSpot/Speed' => 'ONVIF::PTZ::Types::PTZSpeed', + 'SetConfiguration/PTZConfiguration/Extension/PTControlDirection/Reverse' => 'ONVIF::PTZ::Types::Reverse', + 'GetConfigurationsResponse/PTZConfiguration/DefaultAbsoluteZoomPositionSpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'ModifyPresetTour/PresetTour/TourSpot' => 'ONVIF::PTZ::Types::PTZPresetTourSpot', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/RelativePanTiltTranslationSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'ModifyPresetTour/PresetTour/TourSpot/PresetDetail/TypeExtension' => 'ONVIF::PTZ::Types::PTZPresetTourTypeExtension', + 'GetConfigurationResponse/PTZConfiguration/ZoomLimits/Range/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'ModifyPresetTour/PresetTour/Status/CurrentTourSpot/StayTime' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'GetStatusResponse/PTZStatus/UtcTime' => 'SOAP::WSDL::XSD::Typelib::Builtin::dateTime', + 'GetPresetToursResponse/PresetTour/Status/CurrentTourSpot/StayTime' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'GetConfigurationResponse/PTZConfiguration/DefaultPTZSpeed/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetPresetTourResponse' => 'ONVIF::PTZ::Elements::GetPresetTourResponse', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/RelativeZoomTranslationSpace' => 'ONVIF::PTZ::Types::Space1DDescription', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/AbsolutePanTiltPositionSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetToursResponse/PresetTour/TourSpot' => 'ONVIF::PTZ::Types::PTZPresetTourSpot', + 'RelativeMove/Translation/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/DefaultRelativeZoomTranslationSpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetPresetTourOptionsResponse/Options/TourSpot/StayTime/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/AbsolutePanTiltPositionSpace/YRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetTourResponse/PresetTour/TourSpot/PresetDetail/Home' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', + 'GetPresetToursResponse/PresetTour/Status/CurrentTourSpot/PresetDetail/PTZPosition/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetConfigurationResponse/PTZConfiguration/Extension/PTControlDirection/EFlip/Mode' => 'ONVIF::PTZ::Types::EFlipMode', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/PanTiltLimits/Range/YRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail/ZoomPositionSpace' => 'ONVIF::PTZ::Types::Space1DDescription', + 'GetNodeResponse/PTZNode' => 'ONVIF::PTZ::Types::PTZNode', + 'GetPresetsResponse/Preset/PTZPosition/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/Extension' => 'ONVIF::PTZ::Types::PTZSpacesExtension', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/RelativePanTiltTranslationSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ContinuousPanTiltVelocitySpace/YRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetPresetToursResponse/PresetTour/Status/CurrentTourSpot/PresetDetail/Home' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', + 'OperatePresetTour' => 'ONVIF::PTZ::Elements::OperatePresetTour', + 'OperatePresetTourResponse' => 'ONVIF::PTZ::Elements::OperatePresetTourResponse', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ZoomSpeedSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationResponse/PTZConfiguration/ZoomLimits/Range' => 'ONVIF::PTZ::Types::Space1DDescription', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/RelativePanTiltTranslationSpace/YRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetTourResponse/PresetTour/TourSpot/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourSpotExtension', + 'GetPresetToursResponse/PresetTour/TourSpot/PresetDetail/PTZPosition/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GotoPreset' => 'ONVIF::PTZ::Elements::GotoPreset', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/RelativeZoomTranslationSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/Name' => 'ONVIF::PTZ::Types::Name', + 'GetConfigurationResponse/PTZConfiguration/DefaultContinuousPanTiltVelocitySpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetNodeResponse/PTZNode/Name' => 'ONVIF::PTZ::Types::Name', + 'GetConfigurationResponse/PTZConfiguration' => 'ONVIF::PTZ::Types::PTZConfiguration', + 'Fault/faultcode' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'CreatePresetTourResponse/PresetTourToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ContinuousZoomVelocitySpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetTourResponse/PresetTour/Status/CurrentTourSpot/PresetDetail/PTZPosition/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'Stop/Zoom' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ContinuousZoomVelocitySpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetNodeResponse/PTZNode/AuxiliaryCommands' => 'ONVIF::PTZ::Types::AuxiliaryData', + 'GetConfigurationOptions/ConfigurationToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetConfigurationResponse/PTZConfiguration/PanTiltLimits/Range/YRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail/PanTiltPositionSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetNodeResponse' => 'ONVIF::PTZ::Elements::GetNodeResponse', + 'GetConfigurationsResponse' => 'ONVIF::PTZ::Elements::GetConfigurationsResponse', + 'GetStatusResponse/PTZStatus' => 'ONVIF::PTZ::Types::PTZStatus', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ContinuousPanTiltVelocitySpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'OperatePresetTour/PresetTourToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'RelativeMove/Translation/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'SetConfiguration/PTZConfiguration/DefaultPTZTimeout' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/PanTiltLimits/Range/YRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/PanTiltSpeedSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces' => 'ONVIF::PTZ::Types::PTZSpaces', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/PTControlDirection/EFlip/Mode' => 'ONVIF::PTZ::Types::EFlipMode', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ContinuousZoomVelocitySpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetStatusResponse/PTZStatus/MoveStatus/PanTilt' => 'ONVIF::PTZ::Types::MoveStatus', + 'ModifyPresetTour/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/PanTiltSpeedSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/AbsolutePanTiltPositionSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetsResponse/Preset/PTZPosition' => 'ONVIF::PTZ::Types::PTZVector', + 'SetConfiguration/PTZConfiguration/Extension/Extension' => 'ONVIF::PTZ::Types::PTZConfigurationExtension2', + 'GetConfigurationsResponse/PTZConfiguration/PanTiltLimits/Range' => 'ONVIF::PTZ::Types::Space2DDescription', + 'SetConfiguration/PTZConfiguration/ZoomLimits/Range/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/RelativePanTiltTranslationSpace/YRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetToursResponse/PresetTour' => 'ONVIF::PTZ::Types::PresetTour', + 'GetNodesResponse/PTZNode/Extension' => 'ONVIF::PTZ::Types::PTZNodeExtension', + 'SetConfiguration/PTZConfiguration/DefaultPTZSpeed/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ContinuousPanTiltVelocitySpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GotoPreset/PresetToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/PTControlDirection/Reverse/Extension' => 'ONVIF::PTZ::Types::ReverseOptionsExtension', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ContinuousPanTiltVelocitySpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'ModifyPresetTour/PresetTour/TourSpot/PresetDetail/PTZPosition/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'AbsoluteMove/Speed/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetNodeResponse/PTZNode/Extension/SupportedPresetTour' => 'ONVIF::PTZ::Types::PTZPresetTourSupported', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/Extension/PTControlDirection/EFlip' => 'ONVIF::PTZ::Types::EFlip', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/PanTiltSpeedSpace' => 'ONVIF::PTZ::Types::Space1DDescription', + 'SendAuxiliaryCommandResponse' => 'ONVIF::PTZ::Elements::SendAuxiliaryCommandResponse', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces' => 'ONVIF::PTZ::Types::PTZSpaces', + 'GetConfigurationsResponse/PTZConfiguration/ZoomLimits/Range/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'OperatePresetTour/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetPresetTourResponse/PresetTour/StartingCondition/RecurringDuration' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ZoomSpeedSpace' => 'ONVIF::PTZ::Types::Space1DDescription', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/RelativeZoomTranslationSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail/PanTiltPositionSpace/YRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/PanTiltSpeedSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationsResponse/PTZConfiguration' => 'ONVIF::PTZ::Types::PTZConfiguration', + 'GetConfigurationsResponse/PTZConfiguration/DefaultPTZSpeed' => 'ONVIF::PTZ::Types::PTZSpeed', + 'RemovePresetTour/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'ModifyPresetTour/PresetTour/Status/CurrentTourSpot/PresetDetail/PTZPosition/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetCompatibleConfigurationsResponse/PTZConfiguration' => 'ONVIF::PTZ::Types::PTZConfiguration', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/PanTiltLimits/Range/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/Extension/PTControlDirection/Extension' => 'ONVIF::PTZ::Types::PTControlDirectionExtension', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ContinuousPanTiltVelocitySpace' => 'ONVIF::PTZ::Types::Space2DDescription', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/RelativeZoomTranslationSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetServiceCapabilitiesResponse' => 'ONVIF::PTZ::Elements::GetServiceCapabilitiesResponse', + 'GetConfigurationsResponse/PTZConfiguration/Extension/PTControlDirection/EFlip/Mode' => 'ONVIF::PTZ::Types::EFlipMode', + 'GetConfigurationsResponse/PTZConfiguration/UseCount' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'GotoHomePosition/Speed' => 'ONVIF::PTZ::Types::PTZSpeed', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/AbsolutePanTiltPositionSpace/YRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetToursResponse/PresetTour/Status' => 'ONVIF::PTZ::Types::PTZPresetTourStatus', + 'Fault/faultstring' => 'SOAP::WSDL::XSD::Typelib::Builtin::string', + 'RelativeMove/Translation' => 'ONVIF::PTZ::Types::PTZVector', + 'ModifyPresetTour/PresetTour/TourSpot/PresetDetail/PresetToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/AbsolutePanTiltPositionSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetPresetsResponse/Preset/PTZPosition/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/NodeToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetPresetTours' => 'ONVIF::PTZ::Elements::GetPresetTours', + 'GetPresetTour' => 'ONVIF::PTZ::Elements::GetPresetTour', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ContinuousZoomVelocitySpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetTourOptionsResponse/Options/AutoStart' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', + 'ContinuousMove/Timeout' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/PTZTimeout' => 'ONVIF::PTZ::Types::DurationRange', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/PTControlDirection/EFlip/Extension' => 'ONVIF::PTZ::Types::EFlipOptionsExtension', + 'ModifyPresetTour/PresetTour/Status/CurrentTourSpot/PresetDetail/PTZPosition/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/Extension' => 'ONVIF::PTZ::Types::PTZSpacesExtension', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/RelativePanTiltTranslationSpace/YRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/RelativeZoomTranslationSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'ModifyPresetTour/PresetTour/Status/CurrentTourSpot/PresetDetail/Home' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', + 'RelativeMove' => 'ONVIF::PTZ::Elements::RelativeMove', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/PanTiltSpeedSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetsResponse/Preset' => 'ONVIF::PTZ::Types::PTZPreset', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/RelativePanTiltTranslationSpace/YRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/DefaultContinuousZoomVelocitySpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'SetConfiguration' => 'ONVIF::PTZ::Elements::SetConfiguration', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/PanTiltSpeedSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetConfigurationsResponse/PTZConfiguration/PanTiltLimits/Range/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetConfigurationResponse/PTZConfiguration/DefaultPTZSpeed/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetPresetTourResponse/PresetTour/StartingCondition/RecurringTime' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ContinuousPanTiltVelocitySpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetPresetTourOptions' => 'ONVIF::PTZ::Elements::GetPresetTourOptions', + 'GetPresetTourResponse/PresetTour/Status/CurrentTourSpot/PresetDetail' => 'ONVIF::PTZ::Types::PTZPresetTourPresetDetail', + 'GetPresetToursResponse/PresetTour/TourSpot/Speed/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/PanTiltLimits/Range/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/DefaultAbsoluteZoomPositionSpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetPresetTourResponse/PresetTour/Status/CurrentTourSpot/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourSpotExtension', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/AbsolutePanTiltPositionSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetTourResponse/PresetTour/TourSpot/PresetDetail/PresetToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/Extension' => 'ONVIF::PTZ::Types::PTZSpacesExtension', + 'SetConfiguration/PTZConfiguration/PanTiltLimits/Range/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/DefaultPTZSpeed/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetPresetTourResponse/PresetTour/Status/CurrentTourSpot/PresetDetail/PTZPosition' => 'ONVIF::PTZ::Types::PTZVector', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ContinuousPanTiltVelocitySpace' => 'ONVIF::PTZ::Types::Space2DDescription', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/PTZTimeout/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/RelativePanTiltTranslationSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'SetConfiguration/PTZConfiguration/Extension/PTControlDirection/EFlip' => 'ONVIF::PTZ::Types::EFlip', + 'ModifyPresetTour/PresetTour/Status' => 'ONVIF::PTZ::Types::PTZPresetTourStatus', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/AbsoluteZoomPositionSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail/PanTiltPositionSpace' => 'ONVIF::PTZ::Types::Space2DDescription', + 'GetStatusResponse/PTZStatus/Position/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetConfigurationsResponse/PTZConfiguration/Extension/PTControlDirection/Reverse/Mode' => 'ONVIF::PTZ::Types::ReverseMode', + 'ModifyPresetTour/PresetTour/TourSpot/StayTime' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/AbsolutePanTiltPositionSpace/YRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetConfigurationResponse/PTZConfiguration/Extension/PTControlDirection/Reverse/Mode' => 'ONVIF::PTZ::Types::ReverseMode', + 'GetPresetTourResponse/PresetTour' => 'ONVIF::PTZ::Types::PresetTour', + 'GetNodesResponse/PTZNode/Extension/SupportedPresetTour/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourSupportedExtension', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourPresetDetailOptionsExtension', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/AbsolutePanTiltPositionSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodesResponse/PTZNode/Extension/Extension' => 'ONVIF::PTZ::Types::PTZNodeExtension2', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/AbsoluteZoomPositionSpace' => 'ONVIF::PTZ::Types::Space1DDescription', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail/ZoomPositionSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'OperatePresetTour/Operation' => 'ONVIF::PTZ::Types::PTZPresetTourOperation', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/RelativeZoomTranslationSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail/Home' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', + 'ModifyPresetTour/PresetTour/StartingCondition' => 'ONVIF::PTZ::Types::PTZPresetTourStartingCondition', + 'GetPresetTourResponse/PresetTour/AutoStart' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', + 'ModifyPresetTour/PresetTour/Status/CurrentTourSpot/PresetDetail/PTZPosition' => 'ONVIF::PTZ::Types::PTZVector', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/RelativePanTiltTranslationSpace' => 'ONVIF::PTZ::Types::Space2DDescription', + 'GetConfigurationsResponse/PTZConfiguration/PanTiltLimits/Range/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/RelativeZoomTranslationSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'ModifyPresetTour/PresetTour/Status/CurrentTourSpot/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourSpotExtension', + 'SetConfiguration/ForcePersistence' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', + 'GetConfigurationResponse/PTZConfiguration/ZoomLimits/Range/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetConfigurationsResponse/PTZConfiguration/DefaultPTZSpeed/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetPresetTourOptions/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/ZoomLimits/Range/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetToursResponse/PresetTour/Status/CurrentTourSpot/PresetDetail/TypeExtension' => 'ONVIF::PTZ::Types::PTZPresetTourTypeExtension', + 'GetNodeResponse/PTZNode/Extension/SupportedPresetTour/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourSupportedExtension', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/PTControlDirection/EFlip' => 'ONVIF::PTZ::Types::EFlipOptions', + 'GetNodesResponse/PTZNode/Extension/SupportedPresetTour' => 'ONVIF::PTZ::Types::PTZPresetTourSupported', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ContinuousPanTiltVelocitySpace/YRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetPresetToursResponse/PresetTour/Status/CurrentTourSpot/PresetDetail' => 'ONVIF::PTZ::Types::PTZPresetTourPresetDetail', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/PanTiltSpeedSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'ModifyPresetTour/PresetTour/Status/CurrentTourSpot' => 'ONVIF::PTZ::Types::PTZPresetTourSpot', + 'GetNodeResponse/PTZNode/token' => 'SOAP::WSDL::XSD::Typelib::Builtin::token', + 'GetNodesResponse/PTZNode/Name' => 'ONVIF::PTZ::Types::Name', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ContinuousPanTiltVelocitySpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetToursResponse/PresetTour/StartingCondition/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourStartingConditionExtension', + 'SetConfiguration/PTZConfiguration/ZoomLimits' => 'ONVIF::PTZ::Types::ZoomLimits', + 'RelativeMove/Speed/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'AbsoluteMove/Speed' => 'ONVIF::PTZ::Types::PTZSpeed', + 'GetConfigurationsResponse/PTZConfiguration/PanTiltLimits/Range/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'ModifyPresetTour/PresetTour/TourSpot/PresetDetail/Home' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', + 'SetConfiguration/PTZConfiguration/PanTiltLimits/Range/YRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetConfigurationsResponse/PTZConfiguration/DefaultPTZTimeout' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/RelativePanTiltTranslationSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'SetConfiguration/PTZConfiguration/ZoomLimits/Range/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'ContinuousMove/Velocity/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetStatusResponse/PTZStatus/Position/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/RelativePanTiltTranslationSpace/YRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationResponse/PTZConfiguration/ZoomLimits/Range/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'SetConfiguration/PTZConfiguration/DefaultAbsolutePantTiltPositionSpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetPresetTourOptionsResponse/Options/TourSpot' => 'ONVIF::PTZ::Types::PTZPresetTourSpotOptions', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/PTControlDirection/Reverse' => 'ONVIF::PTZ::Types::ReverseOptions', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/RelativeZoomTranslationSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationsResponse/PTZConfiguration/Extension/PTControlDirection' => 'ONVIF::PTZ::Types::PTControlDirection', + 'GetPresetTourResponse/PresetTour/TourSpot/PresetDetail/PTZPosition/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetPresetTourResponse/PresetTour/TourSpot' => 'ONVIF::PTZ::Types::PTZPresetTourSpot', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/RelativePanTiltTranslationSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/RelativeZoomTranslationSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetPresetTourOptions/PresetTourToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetPresetTourOptionsResponse/Options' => 'ONVIF::PTZ::Types::PTZPresetTourOptions', + 'RemovePreset/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ZoomSpeedSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetTours/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetNodesResponse/PTZNode/Extension/SupportedPresetTour/MaximumNumberOfPresetTours' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'GetPresetTourResponse/PresetTour/Status/CurrentTourSpot/PresetDetail/PresetToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/PanTiltLimits/Range/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'SetHomePosition' => 'ONVIF::PTZ::Elements::SetHomePosition', + 'GetPresetToursResponse/PresetTour/Status/CurrentTourSpot/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourSpotExtension', + 'GetPresetTourResponse/PresetTour/StartingCondition/Direction' => 'ONVIF::PTZ::Types::PTZPresetTourDirection', + 'GotoHomePosition/Speed/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetNodeResponse/PTZNode/Extension/SupportedPresetTour/MaximumNumberOfPresetTours' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ZoomSpeedSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ContinuousPanTiltVelocitySpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetConfigurationResponse/PTZConfiguration/DefaultContinuousZoomVelocitySpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/DefaultPTZSpeed' => 'ONVIF::PTZ::Types::PTZSpeed', + 'SetConfiguration/PTZConfiguration/ZoomLimits/Range' => 'ONVIF::PTZ::Types::Space1DDescription', + 'GetConfigurationsResponse/PTZConfiguration/DefaultContinuousPanTiltVelocitySpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/RelativePanTiltTranslationSpace' => 'ONVIF::PTZ::Types::Space2DDescription', + 'AbsoluteMove/Speed/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetPresetTourOptionsResponse/Options/StartingCondition/RecurringDuration' => 'ONVIF::PTZ::Types::DurationRange', + 'ContinuousMove' => 'ONVIF::PTZ::Elements::ContinuousMove', + 'GetStatusResponse/PTZStatus/Position' => 'ONVIF::PTZ::Types::PTZVector', + 'GetPresetTourOptionsResponse/Options/StartingCondition/RecurringTime' => 'ONVIF::PTZ::Types::IntRange', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ZoomSpeedSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'ModifyPresetTour/PresetTour/StartingCondition/RecurringDuration' => 'SOAP::WSDL::XSD::Typelib::Builtin::duration', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/AbsoluteZoomPositionSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetPresetTourOptionsResponse/Options/StartingCondition/Direction' => 'ONVIF::PTZ::Types::PTZPresetTourDirection', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/AbsolutePanTiltPositionSpace/XRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetConfigurationsResponse/PTZConfiguration/PanTiltLimits/Range/YRange' => 'ONVIF::PTZ::Types::FloatRange', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces' => 'ONVIF::PTZ::Types::PTZSpaces', + 'GetConfigurationResponse/PTZConfiguration/PanTiltLimits/Range/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'RemovePreset' => 'ONVIF::PTZ::Elements::RemovePreset', + 'GetConfigurationsResponse/PTZConfiguration/DefaultRelativeZoomTranslationSpace' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetNodeResponse/PTZNode/Extension/SupportedPresetTour/PTZPresetTourOperation' => 'ONVIF::PTZ::Types::PTZPresetTourOperation', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ContinuousZoomVelocitySpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetPresetTourOptionsResponse/Options/TourSpot/PresetDetail/PanTiltPositionSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/PanTiltSpeedSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/PanTiltSpeedSpace/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/AbsolutePanTiltPositionSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetTourResponse/PresetTour/TourSpot/PresetDetail/PTZPosition/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'SetConfiguration/PTZConfiguration/DefaultPTZSpeed/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/AbsolutePanTiltPositionSpace' => 'ONVIF::PTZ::Types::Space2DDescription', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/PanTiltSpeedSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetPresetTourResponse/PresetTour/Status/CurrentTourSpot/PresetDetail/TypeExtension' => 'ONVIF::PTZ::Types::PTZPresetTourTypeExtension', + 'GetConfigurationsResponse/PTZConfiguration/ZoomLimits' => 'ONVIF::PTZ::Types::ZoomLimits', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/RelativePanTiltTranslationSpace/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'Stop/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/PanTiltLimits/Range/URI' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'GetConfigurationsResponse/PTZConfiguration/Extension' => 'ONVIF::PTZ::Types::PTZConfigurationExtension', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/ZoomLimits/Range/XRange/Min' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'ModifyPresetTour/PresetTour/Status/CurrentTourSpot/Speed/Zoom' => 'ONVIF::PTZ::Types::Vector1D', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/PanTiltSpeedSpace/XRange/Max' => 'SOAP::WSDL::XSD::Typelib::Builtin::float', + 'GetNodesResponse/PTZNode' => 'ONVIF::PTZ::Types::PTZNode', + 'GetPresetToursResponse/PresetTour/Status/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourStatusExtension', + 'GetStatusResponse/PTZStatus/MoveStatus/Zoom' => 'ONVIF::PTZ::Types::MoveStatus', + 'GetNodeResponse/PTZNode/SupportedPTZSpaces/ZoomSpeedSpace' => 'ONVIF::PTZ::Types::Space1DDescription', + 'GetPresets' => 'ONVIF::PTZ::Elements::GetPresets', + 'RelativeMove/ProfileToken' => 'ONVIF::PTZ::Types::ReferenceToken', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Extension' => 'ONVIF::PTZ::Types::PTZConfigurationOptions2', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions' => 'ONVIF::PTZ::Types::PTZConfigurationOptions', + 'GetConfigurationResponse/PTZConfiguration/DefaultPTZSpeed' => 'ONVIF::PTZ::Types::PTZSpeed', + 'Fault/faultactor' => 'SOAP::WSDL::XSD::Typelib::Builtin::token', + 'GetPresetTourOptionsResponse/Options/TourSpot/StayTime' => 'ONVIF::PTZ::Types::DurationRange', + 'GetNodesResponse/PTZNode/SupportedPTZSpaces/ZoomSpeedSpace' => 'ONVIF::PTZ::Types::Space1DDescription', + 'ModifyPresetTour/PresetTour/TourSpot/PresetDetail' => 'ONVIF::PTZ::Types::PTZPresetTourPresetDetail', + 'GetCompatibleConfigurationsResponse/PTZConfiguration/Extension' => 'ONVIF::PTZ::Types::PTZConfigurationExtension', + 'ModifyPresetTour/PresetTour/Extension' => 'ONVIF::PTZ::Types::PTZPresetTourExtension', + 'GetPresetToursResponse/PresetTour/Name' => 'ONVIF::PTZ::Types::Name', + 'GetPresetTourResponse/PresetTour/Status/CurrentTourSpot/Speed/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'AbsoluteMove/Position/PanTilt' => 'ONVIF::PTZ::Types::Vector2D', + 'GetConfigurationOptionsResponse/PTZConfigurationOptions/Spaces/ContinuousPanTiltVelocitySpace/XRange' => 'ONVIF::PTZ::Types::FloatRange' + }; +; + +sub get_class { + my $name = join '/', @{ $_[1] }; + return $typemap_1->{ $name }; +} + +sub get_typemap { + return $typemap_1; +} + +1; + +__END__ + +__END__ + +=pod + +=head1 NAME + +ONVIF::PTZ::Typemaps::PTZ - typemap for PTZ + +=head1 DESCRIPTION + +Typemap created by SOAP::WSDL for map-based SOAP message parsers. + +=cut + diff --git a/onvif/proxy/lib/ONVIF/PTZ/Types/PTZNode.pm b/onvif/proxy/lib/ONVIF/PTZ/Types/PTZNode.pm index 1e402b0b7..60350ae85 100644 --- a/onvif/proxy/lib/ONVIF/PTZ/Types/PTZNode.pm +++ b/onvif/proxy/lib/ONVIF/PTZ/Types/PTZNode.pm @@ -22,7 +22,7 @@ use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); Class::Std::initialize(); { # BLOCK to scope variables - +my %token_of :ATTR(:get); my %Name_of :ATTR(:get); my %SupportedPTZSpaces_of :ATTR(:get); my %MaximumNumberOfPresets_of :ATTR(:get); @@ -31,7 +31,8 @@ my %AuxiliaryCommands_of :ATTR(:get); my %Extension_of :ATTR(:get); __PACKAGE__->_factory( - [ qw( Name + [ qw( token + Name SupportedPTZSpaces MaximumNumberOfPresets HomeSupported @@ -40,6 +41,7 @@ __PACKAGE__->_factory( ) ], { + 'token'=> \%token_of, 'Name' => \%Name_of, 'SupportedPTZSpaces' => \%SupportedPTZSpaces_of, 'MaximumNumberOfPresets' => \%MaximumNumberOfPresets_of, @@ -48,6 +50,7 @@ __PACKAGE__->_factory( 'Extension' => \%Extension_of, }, { + 'token' => 'ONVIF::PTZ::Types::ReferenceToken', 'Name' => 'ONVIF::PTZ::Types::Name', 'SupportedPTZSpaces' => 'ONVIF::PTZ::Types::PTZSpaces', 'MaximumNumberOfPresets' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', @@ -57,6 +60,7 @@ __PACKAGE__->_factory( }, { + 'token' => 'token', 'Name' => 'Name', 'SupportedPTZSpaces' => 'SupportedPTZSpaces', 'MaximumNumberOfPresets' => 'MaximumNumberOfPresets', @@ -76,17 +80,19 @@ use base qw(SOAP::WSDL::XSD::Typelib::AttributeSet); { # BLOCK to scope variables +my %token_of :ATTR(:get); my %FixedHomePosition_of :ATTR(:get); __PACKAGE__->_factory( - [ qw( + [ qw( token FixedHomePosition ) ], { - + token=> \%token_of, FixedHomePosition => \%FixedHomePosition_of, }, { + token => 'ONVIF::PTZ::Types::ReferenceToken', FixedHomePosition => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean', } ); diff --git a/onvif/proxy/lib/WSNotification/Elements/Header.pm b/onvif/proxy/lib/WSNotification/Elements/Header.pm new file mode 100644 index 000000000..e6dfefaaf --- /dev/null +++ b/onvif/proxy/lib/WSNotification/Elements/Header.pm @@ -0,0 +1,55 @@ + +package WSNotification::Elements::Header; +use strict; +use warnings; + + +__PACKAGE__->_set_element_form_qualified(0); + +sub get_xmlns { 'http://schemas.xmlsoap.org/soap/envelope/' }; + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); +use Data::Dumper; + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %Action_of :ATTR(:get); +my %MessageID_of :ATTR(:get); +my %ReplyTo_of :ATTR(:get); +my %To_of :ATTR(:get); +__PACKAGE__->_factory( + [ qw( Action MessageID ReplyTo To ) ], + { + 'Action' => \%Action_of, + 'MessageID' => \%MessageID_of, + 'ReplyTo' => \%ReplyTo_of, + 'To' => \%To_of, + }, + { + 'Action' => 'WSNotification::Elements::Action', + 'MessageID' => 'WSNotification::Elements::MessageID', + 'ReplyTo' => 'WSNotification::Elements::ReplyTo', + 'To' => 'WSNotification::Elements::To', + }, + { + 'Action' => '', + 'MessageID' => '', + 'ReplyTo' => '', + 'To' => '', + } +); + +} # end BLOCK + + +1; diff --git a/onvif/proxy/lib/WSNotification/Interfaces/WSBaseNotificationSender/SubscriptionManagerPort.pm b/onvif/proxy/lib/WSNotification/Interfaces/WSBaseNotificationSender/SubscriptionManagerPort.pm index 807c2ace2..9ff17299f 100644 --- a/onvif/proxy/lib/WSNotification/Interfaces/WSBaseNotificationSender/SubscriptionManagerPort.pm +++ b/onvif/proxy/lib/WSNotification/Interfaces/WSBaseNotificationSender/SubscriptionManagerPort.pm @@ -4,6 +4,7 @@ use warnings; use Class::Std::Fast::Storable; use Scalar::Util qw(blessed); use base qw(SOAP::WSDL::Client::Base); +use Data::Dumper; # only load if it hasn't been loaded before require WSNotification::Typemaps::WSBaseNotificationSender @@ -20,7 +21,7 @@ sub START { sub Renew { my ($self, $body, $header) = @_; die "Renew must be called as object method (\$self is <$self>)" if not blessed($self); - return $self->SUPER::call({ + return $self->SUPER::call({ operation => 'Renew', soap_action => 'http://docs.oasis-open.org/wsn/bw-2/Renew', style => 'document', @@ -34,7 +35,10 @@ sub Renew { }, header => { - + 'use' => 'literal', + namespace => 'http://schemas.xmlsoap.org/ws/2004/08/addressing', + encodingStyle => '', + parts => [qw( WSNotification::Elements::Header )], }, headerfault => { diff --git a/scripts/zmonvif-trigger.pl.in b/scripts/zmonvif-trigger.pl.in index f1221b322..87d89c7a1 100644 --- a/scripts/zmonvif-trigger.pl.in +++ b/scripts/zmonvif-trigger.pl.in @@ -48,10 +48,11 @@ use Time::HiRes qw( usleep ); use SOAP::Lite; # +trace; use SOAP::Transport::HTTP; - +use Data::UUID; use ZoneMinder; require ONVIF::Client; +require WSNotification::Elements::Header; require WSNotification::Interfaces::WSBaseNotificationSender::NotificationProducerPort; require WSNotification::Interfaces::WSBaseNotificationSender::SubscriptionManagerPort; @@ -74,6 +75,7 @@ my $daemon_pid; my $monitor_reload_time = 0; + # this does not work on all architectures my @EXTRA_SOCK_OPTS = ( 'ReuseAddr' => '1', @@ -87,9 +89,16 @@ my @EXTRA_SOCK_OPTS = ( sub handler { # 1st argument is signal name my ($sig) = @_; - Error("Caught a SIG$sig -- shutting down"); - confess(); - kill($daemon_pid) if defined $daemon_pid; +# Error("Caught a SIG$sig --daemon_pid = $daemon_pid shutting down"); + Info("Caught a SIG$sig ;;; daemon_pid = $daemon_pid"); + if ( $daemon_pid != 0 ) { + Info( "killing child $daemon_pid \n") ; + kill(15 ,$daemon_pid) ; + Info(" sent kill signal to child , now waitpid...") ; + waitpid($daemon_pid, 0); + confess(); + } + Info("Exiting ..") ; exit(0); } @@ -215,6 +224,7 @@ sub xs_duration { } Info('Monitor URL: '.$monitor->{ONVIF_URL}); + Info("In parent process ;;; child PID = $daemon_pid"); ## set up ONVIF client for monitor next if ! $monitor->{ONVIF_URL}; @@ -428,7 +438,6 @@ sub start_daemon { $daemon_pid = fork(); die "fork() failed: $!" unless defined $daemon_pid; if ( $daemon_pid ) { - # this is a new process --> use new name and log file $0 = $0.' [http-daemon]'; logInit(id => 'zmonvif-trigger-httpd'); @@ -485,36 +494,39 @@ sub subscribe { # }, },, ); - die $result if not $result; - # print $result . "\n"; - ### build Subscription Manager my $submgr_addr = $result->get_SubscriptionReference()->get_Address()->get_value(); Info("Subscription Manager at $submgr_addr"); - my $serializer = $client->service('device', 'ep')->get_serializer(); - my $submgr_svc = WSNotification::Interfaces::WSBaseNotificationSender::SubscriptionManagerPort->new({ serializer => $serializer, proxy => $submgr_addr, - }); - + }, +); return $submgr_svc; } # end sub subscribe sub unsubscribe { my ($submgr_svc) = @_; - $submgr_svc->Unsubscribe( { },, ); } + sub renew { my ($submgr_svc, $duration) = @_; - + my $endpoint=$submgr_svc->get_endpoint(); + my $uuid_gen = Data::UUID->new(); + my $uuid = $uuid_gen->create_str(); my $result = $submgr_svc->Renew( { TerminationTime => xs_duration($duration), # AbsoluteOrRelativeTimeType - },, + }, + WSNotification::Elements::Header->new({ + Action => { value => 'http://docs.oasis-open.org/wsn/bw-2/SubscriptionManager/RenewRequest' }, + MessageID => { value => "urn:uuid:$uuid" }, + To => { value => "$endpoint" }, + # ReplyTo => { Address => { value => "http://www.w3.org/2005/08/addressing/anonymous" }}, + }) ); die $result if not $result; } diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 515328fe1..81c2a73c3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -113,7 +113,7 @@ if(GSOAP_FOUND) #COMMAND ${GSOAP_WSDL2H} -d -P -O2 -o ${CMAKE_BINARY_DIR}/generated/bindings.h http://www.onvif.org/onvif/ver10/events/wsdl/event.wsdl #COMMAND echo '\#import \"wsse.h\"' >> ${CMAKE_BINARY_DIR}/generated/bindings.h #COMMAND echo '\#import \"struct_timeval.h\"' >> ${CMAKE_BINARY_DIR}/generated/bindings.h - COMMAND ${GSOAP_SOAPCPP2} -n -2 -C -I ${GSOAP_PLUGIN_DIR}/.. -I ${GSOAP_PLUGIN_DIR}/../import/ -I ${GSOAP_PLUGIN_DIR}/../custom/ -d ${CMAKE_BINARY_DIR}/generated -j -x ${CMAKE_CURRENT_SOURCE_DIR}/bindings.h + COMMAND ${GSOAP_SOAPCPP2} -a -n -2 -C -I ${GSOAP_PLUGIN_DIR}/.. -I ${GSOAP_PLUGIN_DIR}/../import/ -I ${GSOAP_PLUGIN_DIR}/../custom/ -d ${CMAKE_BINARY_DIR}/generated -j -x ${CMAKE_CURRENT_SOURCE_DIR}/bindings.h COMMENT "CREATING STUBS AND GLUE CODE" ) diff --git a/src/bindings.h b/src/bindings.h index aadc2a1ed..d1f3aa8f0 100644 --- a/src/bindings.h +++ b/src/bindings.h @@ -7747,3 +7747,4 @@ generated .h file in your code. /* End of /home/jbennett/src/zoneminder/build/generated/bindings.h */ #import "wsse.h" #import "struct_timeval.h" +#import "wsa5.h" diff --git a/src/zm_monitor.cpp b/src/zm_monitor.cpp index 6f2f76468..8b1022759 100644 --- a/src/zm_monitor.cpp +++ b/src/zm_monitor.cpp @@ -1032,41 +1032,84 @@ bool Monitor::connect() { Amcrest_Manager = new AmcrestAPI(this); } else { //using GSOAP #ifdef WITH_GSOAP - tev__PullMessages.Timeout = "PT600S"; - tev__PullMessages.MessageLimit = 100; + tev__PullMessages.Timeout = "PT20S"; + tev__PullMessages.MessageLimit = 10; + std::string Termination_time = "PT60S"; + wsnt__Renew.TerminationTime=&Termination_time; soap = soap_new(); - soap->connect_timeout = 5; - soap->recv_timeout = 5; - soap->send_timeout = 5; + soap->connect_timeout = 0; + soap->recv_timeout = 0; + soap->send_timeout = 0; + //soap->bind_flags |= SO_REUSEADDR; soap_register_plugin(soap, soap_wsse); + soap_register_plugin(soap, soap_wsa); proxyEvent = PullPointSubscriptionBindingProxy(soap); if (!onvif_url.empty()) { std::string full_url = onvif_url + "/Events"; proxyEvent.soap_endpoint = full_url.c_str(); - set_credentials(soap); - Debug(1, "ONVIF Endpoint: %s", proxyEvent.soap_endpoint); - if (proxyEvent.CreatePullPointSubscription(&request, response) != SOAP_OK) { - const char *detail = soap_fault_detail(soap); - Error("Couldn't create subscription! %s, %s", soap_fault_string(soap), detail ? detail : "null"); - _wsnt__Unsubscribe wsnt__Unsubscribe; - _wsnt__UnsubscribeResponse wsnt__UnsubscribeResponse; - proxyEvent.Unsubscribe(response.SubscriptionReference.Address, NULL, &wsnt__Unsubscribe, wsnt__UnsubscribeResponse); - soap_destroy(soap); - soap_end(soap); - soap_free(soap); - soap = nullptr; - } else { - //Empty the stored messages - set_credentials(soap); - if ((proxyEvent.PullMessages(response.SubscriptionReference.Address, NULL, &tev__PullMessages, tev__PullMessagesResponse) != SOAP_OK) && - ( soap->error != SOAP_EOF)) { //SOAP_EOF could indicate no messages to pull. - Error("Couldn't do initial event pull! Error %i %s, %s", soap->error, soap_fault_string(soap), soap_fault_detail(soap)); - } else { - Debug(1, "Good Initial ONVIF Pull"); - Event_Poller_Healthy = TRUE; - } - } + const char *RequestMessageID = soap_wsa_rand_uuid(soap); + if (soap_wsa_request(soap, RequestMessageID, proxyEvent.soap_endpoint , "CreatePullPointSubscriptionRequest") == SOAP_OK) + { + Debug(1, ":soap_wsa_request OK "); + Debug(1, "ONVIF Endpoint: %s", proxyEvent.soap_endpoint); + if (proxyEvent.CreatePullPointSubscription(&request, response) != SOAP_OK) { + const char *detail = soap_fault_detail(soap); + Error("Couldn't create subscription! %s, %s", soap_fault_string(soap), detail ? detail : "null"); + _wsnt__Unsubscribe wsnt__Unsubscribe; + _wsnt__UnsubscribeResponse wsnt__UnsubscribeResponse; + proxyEvent.Unsubscribe(response.SubscriptionReference.Address, NULL, &wsnt__Unsubscribe, wsnt__UnsubscribeResponse); + soap_destroy(soap); + soap_end(soap); + soap_free(soap); + soap = nullptr; + } else { + //Empty the stored messages + set_credentials(soap); + RequestMessageID = soap_wsa_rand_uuid(soap); + if (soap_wsa_request(soap, RequestMessageID, response.SubscriptionReference.Address , "PullMessageRequest") == SOAP_OK) + { + Debug(1, ":soap_wsa_request OK "); + if ((proxyEvent.PullMessages(response.SubscriptionReference.Address, NULL, &tev__PullMessages, tev__PullMessagesResponse) != SOAP_OK) && + ( soap->error != SOAP_EOF)) { //SOAP_EOF could indicate no messages to pull. + Error("Couldn't do initial event pull! Error %i %s, %s", soap->error, soap_fault_string(soap), soap_fault_detail(soap)); + Event_Poller_Healthy = FALSE; + } else { + Debug(1, "Good Initial ONVIF Pull%i %s, %s", soap->error, soap_fault_string(soap), soap_fault_detail(soap)); + Event_Poller_Healthy = TRUE; + } + } else { + Error("Couldn't set wsa headers RequestMessageID= %s ; TO= %s ; Request= PullMessageRequest .... ! Error %i %s, %s",RequestMessageID , response.SubscriptionReference.Address , soap->error, soap_fault_string(soap), soap_fault_detail(soap)); + Event_Poller_Healthy = FALSE; + } + + +//////////////////////////////////////////////////// +// we renew the current subscription ......... + + set_credentials(soap); + RequestMessageID = soap_wsa_rand_uuid(soap); + if (soap_wsa_request(soap, RequestMessageID, response.SubscriptionReference.Address , "RenewRequest") == SOAP_OK) + { + Debug(1, ":soap_wsa_request OK "); + if (proxyEvent.Renew(response.SubscriptionReference.Address, NULL, &wsnt__Renew, wsnt__RenewResponse) != SOAP_OK) { + Error("Couldn't do initial Renew ! Error %i %s, %s", soap->error, soap_fault_string(soap), soap_fault_detail(soap)); + Event_Poller_Healthy = FALSE; + } else { + Debug(1, "Good Initial ONVIF Renew %i %s, %s", soap->error, soap_fault_string(soap), soap_fault_detail(soap)); + Event_Poller_Healthy = TRUE; + } + } else { + Error("Couldn't set wsa headers RequestMessageID= %s ; TO= %s ; Request= RenewRequest .... ! Error %i %s, %s",RequestMessageID , response.SubscriptionReference.Address , soap->error, soap_fault_string(soap), soap_fault_detail(soap)); + Event_Poller_Healthy = FALSE; + } +////////////////////////////////////////////////////// + + } + + } else { + Error("Couldn't set wsa headers RequestMessageID= %s ; TO= %s ; Request= CreatePullPointSubscriptionRequest .... ! Error %i %s, %s",RequestMessageID , proxyEvent.soap_endpoint , soap->error, soap_fault_string(soap), soap_fault_detail(soap)); + } } else { Warning("You must specify the url to the onvif endpoint"); } @@ -1770,48 +1813,82 @@ bool Monitor::Poll() { } else { #ifdef WITH_GSOAP set_credentials(soap); - int result = proxyEvent.PullMessages(response.SubscriptionReference.Address, NULL, &tev__PullMessages, tev__PullMessagesResponse); - if (result != SOAP_OK) { - if (result != SOAP_EOF) { //Ignore the timeout error - Error("Failed to get ONVIF messages! %d %s", result, soap_fault_string(soap)); - Event_Poller_Healthy = false; - } + const char *RequestMessageID = soap_wsa_rand_uuid(soap); + if (soap_wsa_request(soap, RequestMessageID, response.SubscriptionReference.Address , "PullMessageRequest") == SOAP_OK) + { + Debug(1, ":soap_wsa_request OK ; starting ONVIF PullMessageRequest ... "); + int result = proxyEvent.PullMessages(response.SubscriptionReference.Address, NULL, &tev__PullMessages, tev__PullMessagesResponse); + Debug(1,"Result of getting ONVIF messages= %d %s", result, soap_fault_string(soap)); + if (result != SOAP_OK) { + const char *detail = soap_fault_detail(soap); + Debug(1,"Result of getting ONVIF messages= %d %s", result, soap_fault_string(soap)); + Debug(1," soap_fault_string = %s,detail= %s", soap_fault_string(soap), detail ? detail : "null"); + if (result != SOAP_EOF) { //Ignore the timeout error + Error("Failed to get ONVIF messages! %d %s", result, soap_fault_string(soap)); + // Event_Poller_Healthy = false; + } + } else { + Info( "ONVIF polling : Got Good Response! %i", result); + for (auto msg : tev__PullMessagesResponse.wsnt__NotificationMessage) { + Info( "Got msg "); + if ((msg->Topic != nullptr) && + (msg->Topic->__any.text != nullptr) && + std::strstr(msg->Topic->__any.text, onvif_alarm_txt.c_str()) && + (msg->Message.__any.elts != nullptr) && + (msg->Message.__any.elts->next != nullptr) && + (msg->Message.__any.elts->next->elts != nullptr) && + (msg->Message.__any.elts->next->elts->atts != nullptr) && + (msg->Message.__any.elts->next->elts->atts->next != nullptr) && + (msg->Message.__any.elts->next->elts->atts->next->text != nullptr) + ) { + Info( "Got Motion Alarm!"); + if (strcmp(msg->Message.__any.elts->next->elts->atts->next->text, "true") == 0) { + //Event Start + Info( "Triggered on ONVIF"); + if (!Poll_Trigger_State) { + Info( "Triggered Event"); + Poll_Trigger_State = TRUE; + std::this_thread::sleep_for(std::chrono::seconds(1)); //thread sleep + } + } else { + Info("Triggered off ONVIF"); + Poll_Trigger_State = false; + if (!Event_Poller_Closes_Event) { //If we get a close event, then we know to expect them. + Event_Poller_Closes_Event = TRUE; + Info("Setting ClosesEvent"); + } + } + } else { + Debug(1, "Got a message that we couldn't parse"); + } + } // end foreach msg + //////////////////////////////////////////////////// + // we renew the current subscription ......... + + set_credentials(soap); + std::string Termination_time = "PT60S"; + wsnt__Renew.TerminationTime=&Termination_time; + RequestMessageID = soap_wsa_rand_uuid(soap); + if (soap_wsa_request(soap, RequestMessageID, response.SubscriptionReference.Address , "RenewRequest") == SOAP_OK) + { + Debug(1, ":soap_wsa_request OK "); + if (proxyEvent.Renew(response.SubscriptionReference.Address, NULL, &wsnt__Renew, wsnt__RenewResponse) != SOAP_OK) { + Error("Couldn't do Renew ! Error %i %s, %s", soap->error, soap_fault_string(soap), soap_fault_detail(soap)); + Event_Poller_Healthy = FALSE; + } else { + Debug(1, "Good Renew ONVIF Renew %i %s, %s", soap->error, soap_fault_string(soap), soap_fault_detail(soap)); + Event_Poller_Healthy = TRUE; + } + } else { + Error("Couldn't set wsa headers RequestMessageID= %s ; TO= %s ; Request= RenewRequest .... ! Error %i %s, %s",RequestMessageID , response.SubscriptionReference.Address , soap->error, soap_fault_string(soap), soap_fault_detail(soap)); + Event_Poller_Healthy = FALSE; + } + ////////////////////////////////////////////////////// + } // end if SOAP OK/NOT OK } else { - Debug(1, "Got Good Response! %i", result); - for (auto msg : tev__PullMessagesResponse.wsnt__NotificationMessage) { - Debug(1, "Got msg "); - if ((msg->Topic != nullptr) && - (msg->Topic->__any.text != nullptr) && - std::strstr(msg->Topic->__any.text, onvif_alarm_txt.c_str()) && - (msg->Message.__any.elts != nullptr) && - (msg->Message.__any.elts->next != nullptr) && - (msg->Message.__any.elts->next->elts != nullptr) && - (msg->Message.__any.elts->next->elts->atts != nullptr) && - (msg->Message.__any.elts->next->elts->atts->next != nullptr) && - (msg->Message.__any.elts->next->elts->atts->next->text != nullptr) - ) { - Debug(1, "Got Motion Alarm!"); - if (strcmp(msg->Message.__any.elts->next->elts->atts->next->text, "true") == 0) { - //Event Start - Debug(1, "Triggered on ONVIF"); - if (!Poll_Trigger_State) { - Debug(1, "Triggered Event"); - Poll_Trigger_State = TRUE; - std::this_thread::sleep_for(std::chrono::seconds(1)); //thread sleep - } - } else { - Debug(1, "Triggered off ONVIF"); - Poll_Trigger_State = false; - if (!Event_Poller_Closes_Event) { //If we get a close event, then we know to expect them. - Event_Poller_Closes_Event = TRUE; - Debug(1, "Setting ClosesEvent"); - } - } - } else { - Debug(1, "Got a message that we couldn't parse"); - } - } // end foreach msg - } // end if SOAP OK/NOT OK + Error("Couldn't set wsa headers RequestMessageID= %s ; TO= %s ; Request= PullMessageRequest .... ! Error %i %s, %s",RequestMessageID , response.SubscriptionReference.Address , soap->error, soap_fault_string(soap), soap_fault_detail(soap)); + + } #endif } // end if Amcrest or not } // end if Healthy @@ -1820,7 +1897,7 @@ bool Monitor::Poll() { Janus_Manager->add_to_janus(); } } - std::this_thread::sleep_until(loop_start_time + std::chrono::seconds(5)); + std::this_thread::sleep_until(loop_start_time + std::chrono::seconds(10)); return TRUE; } //end Poll @@ -3261,8 +3338,10 @@ int Monitor::PrimeCapture() { //Poller Thread if (onvif_event_listener || janus_enabled || use_Amcrest_API) { if (!Poller) { + Debug(1, "Creating unique poller thread"); Poller = zm::make_unique(this); } else { + Debug(1, "Starting existing poller thread"); Poller->Start(); } } @@ -3324,7 +3403,13 @@ int Monitor::Close() { Debug(1, "Tearing Down Onvif"); _wsnt__Unsubscribe wsnt__Unsubscribe; _wsnt__UnsubscribeResponse wsnt__UnsubscribeResponse; - proxyEvent.Unsubscribe(response.SubscriptionReference.Address, NULL, &wsnt__Unsubscribe, wsnt__UnsubscribeResponse); + const char *RequestMessageID = soap_wsa_rand_uuid(soap); + if (soap_wsa_request(soap, RequestMessageID, response.SubscriptionReference.Address , "UnsubscribeRequest") == SOAP_OK) + { + proxyEvent.Unsubscribe(response.SubscriptionReference.Address, NULL, &wsnt__Unsubscribe, wsnt__UnsubscribeResponse); + } else { + Error("Couldn't set wsa headers RequestMessageID= %s ; TO= %s ; Request= UnsubscribeRequest .... ! Error %i %s, %s",RequestMessageID , response.SubscriptionReference.Address , soap->error, soap_fault_string(soap), soap_fault_detail(soap)); + } soap_destroy(soap); soap_end(soap); soap_free(soap); diff --git a/src/zm_monitor.h b/src/zm_monitor.h index 16c951554..57980647b 100644 --- a/src/zm_monitor.h +++ b/src/zm_monitor.h @@ -43,6 +43,7 @@ #ifdef WITH_GSOAP #include "soapPullPointSubscriptionBindingProxy.h" #include "plugin/wsseapi.h" +#include "plugin/wsaapi.h" #include #endif @@ -583,6 +584,8 @@ protected: _tev__CreatePullPointSubscriptionResponse response; _tev__PullMessages tev__PullMessages; _tev__PullMessagesResponse tev__PullMessagesResponse; + _wsnt__Renew wsnt__Renew; + _wsnt__RenewResponse wsnt__RenewResponse; PullPointSubscriptionBindingProxy proxyEvent; void set_credentials(struct soap *soap); #endif diff --git a/src/zm_monitor_amcrest.cpp b/src/zm_monitor_amcrest.cpp index d6bfa2dc8..0e0fb8be2 100644 --- a/src/zm_monitor_amcrest.cpp +++ b/src/zm_monitor_amcrest.cpp @@ -61,16 +61,16 @@ int Monitor::AmcrestAPI::start_Amcrest() { curl_easy_setopt(Amcrest_handle, CURLOPT_PASSWORD, parent->onvif_password.c_str()); curl_easy_setopt(Amcrest_handle, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST); curl_error = curl_multi_add_handle(curl_multi, Amcrest_handle); - if (curl_error != CURLM_OK) { - Warning("error of %i", curl_error); - } + if (curl_error != CURLM_OK) { + Warning("AMCREST error of %i", curl_error); + } curl_error = curl_multi_perform(curl_multi, &running_handles); if (curl_error == CURLM_OK) { curl_easy_getinfo(Amcrest_handle, CURLINFO_RESPONSE_CODE, &response_code); int msgq = 0; struct CURLMsg *m = curl_multi_info_read(curl_multi, &msgq); if (m && (m->msg == CURLMSG_DONE)) { - Warning("Libcurl exited Early: %i", m->data.result); + Warning("AMCREST Libcurl exited Early: %i", m->data.result); } curl_multi_wait(curl_multi, NULL, 0, 300, NULL); @@ -80,13 +80,13 @@ int Monitor::AmcrestAPI::start_Amcrest() { if ((curl_error == CURLM_OK) && (running_handles > 0)) { parent->Event_Poller_Healthy = TRUE; } else { - Warning("Response: %s", amcrest_response.c_str()); - Warning("Seeing %i streams, and error of %i, url: %s", running_handles, curl_error, full_url.c_str()); + Warning("AMCREST Response: %s", amcrest_response.c_str()); + Warning("AMCREST Seeing %i streams, and error of %i, url: %s", running_handles, curl_error, full_url.c_str()); curl_easy_getinfo(Amcrest_handle, CURLINFO_OS_ERRNO, &response_code); - Warning("Response code: %lu", response_code); + Warning("AMCREST Response code: %lu", response_code); } -return 0; + return 0; } void Monitor::AmcrestAPI::WaitForMessage() { @@ -100,19 +100,21 @@ void Monitor::AmcrestAPI::WaitForMessage() { if (transfers > 0) { //have data to deal with curl_multi_perform(curl_multi, &open_handles); //actually grabs the data, populates amcrest_response if (amcrest_response.find("action=Start") != std::string::npos) { - //Event Start - Debug(1,"Triggered on ONVIF"); + //Event Start + Debug(1, "AMCREST Triggered on ONVIF"); if (!parent->Poll_Trigger_State) { - Debug(1,"Triggered Event"); + Debug(1, "AMCREST Triggered Event"); parent->Poll_Trigger_State = TRUE; } - } else if (amcrest_response.find("action=Stop") != std::string::npos){ - Debug(1, "Triggered off ONVIF"); + } else if (amcrest_response.find("action=Stop") != std::string::npos) { + Debug(1, "AMCREST Triggered off ONVIF"); parent->Poll_Trigger_State = FALSE; if (!parent->Event_Poller_Closes_Event) { //If we get a close event, then we know to expect them. parent->Event_Poller_Closes_Event = TRUE; - Debug(1,"Setting ClosesEvent"); + Debug(1,"AMCREST Setting ClosesEvent"); } + } else { + Debug(1, "AMCREST unhandled message: %s", amcrest_response.c_str()); } amcrest_response.clear(); //We've dealt with the message, need to clear the queue } diff --git a/src/zm_monitor_janus.cpp b/src/zm_monitor_janus.cpp index 7a210afe7..c6ec28c5e 100644 --- a/src/zm_monitor_janus.cpp +++ b/src/zm_monitor_janus.cpp @@ -101,7 +101,7 @@ void Monitor::JanusManager::load_from_monitor() { rtsp_path = parent->path; } parent->janus_pin = generateKey(16); - Debug(1, "Monitor %u assigned secret %s, rtsp url is %s", parent->id, parent->janus_pin.c_str(), rtsp_path.c_str()); + Debug(1, "JANUS Monitor %u assigned secret %s, rtsp url is %s", parent->id, parent->janus_pin.c_str(), rtsp_path.c_str()); strncpy(parent->shared_data->janus_pin, parent->janus_pin.c_str(), 17); //copy the null termination, as we're in C land } @@ -139,32 +139,31 @@ int Monitor::JanusManager::check_janus() { curl_easy_cleanup(curl); if (res != CURLE_OK) { //may mean an error code thrown by Janus, because of a bad session - Warning("Attempted to send %s to %s and got %s", postData.c_str(), endpoint.c_str(), curl_easy_strerror(res)); + Warning("JANUS Attempted to send %s to %s and got %s", postData.c_str(), endpoint.c_str(), curl_easy_strerror(res)); janus_session = ""; janus_handle = ""; return -1; } - Debug(1, "Queried for stream status: %s", response.c_str()); + Debug(1, "JANUS Queried for stream status: %s", response.c_str()); if (response.find("\"janus\": \"error\"") != std::string::npos) { if (response.find("No such session") != std::string::npos) { - Warning("Janus Session timed out"); + Warning("JANUS Session timed out"); janus_session = ""; return -2; } else if (response.find("No such handle") != std::string::npos) { - Warning("Janus Handle timed out"); + Warning("JANUS Handle timed out"); janus_handle = ""; return -2; } } else if (response.find("No such mountpoint") != std::string::npos) { - Warning("Mountpoint Missing"); + Warning("JANUS Mountpoint Missing"); return 0; } - //check for changed PIN if (response.find(parent->janus_pin) == std::string::npos){ - Warning("PIN changed, remounting."); + Warning("JANUS PIN changed, remounting."); return remove_from_janus(); } return 1; @@ -217,7 +216,7 @@ int Monitor::JanusManager::add_to_janus() { postData += rtsp_timeout; } postData += ", \"video\" : true}}"; - Debug(1, "Sending %s to %s", postData.c_str(), endpoint.c_str()); + Debug(1, "JANUS Sending %s to %s", postData.c_str(), endpoint.c_str()); CURLcode res; std::string response; @@ -230,24 +229,24 @@ int Monitor::JanusManager::add_to_janus() { curl_easy_cleanup(curl); if (res != CURLE_OK) { - Error("Failed to curl_easy_perform adding rtsp stream"); + Error("JANUS Failed to curl_easy_perform adding rtsp stream"); return -1; } //scan for missing session or handle id "No such session" "no such handle" if (response.find("\"janus\": \"error\"") != std::string::npos) { if (response.find("No such session") != std::string::npos) { - Warning("Janus Session timed out"); + Warning("JANUS Session timed out"); janus_session = ""; return -2; } else if (response.find("No such handle") != std::string::npos) { - Warning("Janus Handle timed out"); + Warning("JANUS Handle timed out"); janus_handle = ""; return -2; } } - Debug(1,"Added stream to Janus: %s", response.c_str()); + Debug(1, "JANUS Added stream: %s", response.c_str()); return 0; } @@ -277,9 +276,9 @@ int Monitor::JanusManager::remove_from_janus() { curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postData.c_str()); CURLcode res = curl_easy_perform(curl); if (res != CURLE_OK) { - Warning("Libcurl attempted %s got %s", endpoint.c_str(), curl_easy_strerror(res)); + Warning("JANUS Libcurl attempted %s got %s", endpoint.c_str(), curl_easy_strerror(res)); } else { - Debug(1, "Removed stream from Janus: %s", response.c_str()); + Debug(1, "JANUS Removed stream: %s", response.c_str()); } curl_easy_cleanup(curl); @@ -310,7 +309,7 @@ int Monitor::JanusManager::get_janus_session() { curl_easy_cleanup(curl); if (res != CURLE_OK) { - Warning("Libcurl attempted %s got %s", endpoint.c_str(), curl_easy_strerror(res)); + Warning("JANUS Libcurl attempted %s got %s", endpoint.c_str(), curl_easy_strerror(res)); return -1; } @@ -339,7 +338,7 @@ int Monitor::JanusManager::get_janus_handle() { curl_easy_cleanup(curl); if (res != CURLE_OK) { - Warning("Libcurl attempted %s got %s", endpoint.c_str(), curl_easy_strerror(res)); + Warning("JANUS Libcurl attempted %s got %s", endpoint.c_str(), curl_easy_strerror(res)); return -1; } diff --git a/web/skins/classic/css/base/views/events.css b/web/skins/classic/css/base/views/events.css index 0750195e0..26cc29e4e 100644 --- a/web/skins/classic/css/base/views/events.css +++ b/web/skins/classic/css/base/views/events.css @@ -6,7 +6,7 @@ white-space: nowrap; } -#contentTable.major .colId, #contentTable.major .colDuration, #contentTable.major .colFrames, #contentTable.major .colAlarmFrames, #contentTable.major .colTotScore, #contentTable.major .colMaxScore, #contentTable.major .colAvgScore { +#contentTable.major .colId, #contentTable.major .colDuration, #contentTable.major .colFrames, #contentTable.major .colAlarmFrames, #contentTable.major .colTotScore, #contentTable.major .colMaxScore, #contentTable.major .colAvgScore, #eventTable th, #eventTable td { text-align: center; }