Merge branch 'master' of github.com:ZoneMinder/zoneminder

pull/3750/head
Isaac Connor 2023-07-25 12:32:40 -04:00
commit 30c8052e60
12 changed files with 946 additions and 125 deletions

View File

@ -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

View File

@ -22,7 +22,7 @@ use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %token_of :ATTR(:get<token>);
my %Name_of :ATTR(:get<Name>);
my %SupportedPTZSpaces_of :ATTR(:get<SupportedPTZSpaces>);
my %MaximumNumberOfPresets_of :ATTR(:get<MaximumNumberOfPresets>);
@ -31,7 +31,8 @@ my %AuxiliaryCommands_of :ATTR(:get<AuxiliaryCommands>);
my %Extension_of :ATTR(:get<Extension>);
__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<token>);
my %FixedHomePosition_of :ATTR(:get<FixedHomePosition>);
__PACKAGE__->_factory(
[ qw(
[ qw( token
FixedHomePosition
) ],
{
token=> \%token_of,
FixedHomePosition => \%FixedHomePosition_of,
},
{
token => 'ONVIF::PTZ::Types::ReferenceToken',
FixedHomePosition => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean',
}
);

View File

@ -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<Action>);
my %MessageID_of :ATTR(:get<MessageID>);
my %ReplyTo_of :ATTR(:get<ReplyTo>);
my %To_of :ATTR(:get<To>);
__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;

View File

@ -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 => {

View File

@ -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;
}

View File

@ -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"
)

View File

@ -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"

View File

@ -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<PollThread>(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);

View File

@ -43,6 +43,7 @@
#ifdef WITH_GSOAP
#include "soapPullPointSubscriptionBindingProxy.h"
#include "plugin/wsseapi.h"
#include "plugin/wsaapi.h"
#include <openssl/err.h>
#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

View File

@ -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
}

View File

@ -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;
}

View File

@ -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;
}