├── .circleci └── config.yml ├── .eslintrc.js ├── .github └── FUNDING.yml ├── .gitignore ├── .npmignore ├── .vscode └── launch.json ├── LICENSE ├── README.md ├── dist ├── camera.js ├── modules │ ├── access.js │ ├── accessrules.js │ ├── action.js │ ├── analytics.js │ ├── core.js │ ├── credential.js │ ├── deviceio.js │ ├── discovery.js │ ├── display.js │ ├── door.js │ ├── events.js │ ├── imaging.js │ ├── media.js │ ├── media2.js │ ├── ptz.js │ ├── receiver.js │ ├── recording.js │ ├── replay.js │ ├── schedule.js │ ├── search.js │ ├── security.js │ ├── thermal.js │ └── videoanalytics.js ├── onvif-nvt.js └── utils │ ├── config.js │ ├── save-xml.js │ ├── snapshot.js │ ├── soap.js │ └── util.js ├── docs ├── Access.html ├── AccessRules.html ├── Action.html ├── Analytics.html ├── Camera.html ├── Core.html ├── Credential.html ├── DeviceIO.html ├── Discovery.html ├── Display.html ├── Door.html ├── Events.html ├── Imaging.html ├── Media.html ├── Media2.html ├── OnvifManager.html ├── Ptz.html ├── Receiver.html ├── Recording.html ├── Replay.html ├── Schedule.html ├── Search.html ├── Security.html ├── Snapshot.html ├── Soap.html ├── Thermal.html ├── VideoAnalytics.html ├── camera.js.html ├── fonts │ ├── OpenSans-Bold-webfont.eot │ ├── OpenSans-Bold-webfont.svg │ ├── OpenSans-Bold-webfont.woff │ ├── OpenSans-BoldItalic-webfont.eot │ ├── OpenSans-BoldItalic-webfont.svg │ ├── OpenSans-BoldItalic-webfont.woff │ ├── OpenSans-Italic-webfont.eot │ ├── OpenSans-Italic-webfont.svg │ ├── OpenSans-Italic-webfont.woff │ ├── OpenSans-Light-webfont.eot │ ├── OpenSans-Light-webfont.svg │ ├── OpenSans-Light-webfont.woff │ ├── OpenSans-LightItalic-webfont.eot │ ├── OpenSans-LightItalic-webfont.svg │ ├── OpenSans-LightItalic-webfont.woff │ ├── OpenSans-Regular-webfont.eot │ ├── OpenSans-Regular-webfont.svg │ └── OpenSans-Regular-webfont.woff ├── global.html ├── index.html ├── modules_access.js.html ├── modules_accessrules.js.html ├── modules_action.js.html ├── modules_analytics.js.html ├── modules_core.js.html ├── modules_credential.js.html ├── modules_deviceio.js.html ├── modules_discovery.js.html ├── modules_display.js.html ├── modules_door.js.html ├── modules_events.js.html ├── modules_imaging.js.html ├── modules_media.js.html ├── modules_media2.js.html ├── modules_ptz.js.html ├── modules_receiver.js.html ├── modules_recording.js.html ├── modules_replay.js.html ├── modules_schedule.js.html ├── modules_search.js.html ├── modules_security.js.html ├── modules_thermal.js.html ├── modules_videoanalytics.js.html ├── onvif-nvt.js.html ├── scripts │ ├── linenumber.js │ └── prettify │ │ ├── Apache-License-2.0.txt │ │ ├── lang-css.js │ │ └── prettify.js ├── styles │ ├── jsdoc-default.css │ ├── prettify-jsdoc.css │ └── prettify-tomorrow.css ├── utils_snapshot.js.html └── utils_soap.js.html ├── documents ├── 2013_12_ONVIF_Profile_C_Specification_v1-0.pdf ├── ONVIF-AccessControl-Service-Spec-v103.pdf ├── ONVIF-AccessRules-Service-Spec-v100.pdf ├── ONVIF-ActionEngine-Service-Spec-v100.pdf ├── ONVIF-AdvancedSecurity-Service-Spec-v130.pdf ├── ONVIF-Analytics-Service-Spec-v1712.pdf ├── ONVIF-Core-Specification-v1606.pdf ├── ONVIF-Core-Specification-v1612.pdf ├── ONVIF-Core-Specification-v1706.pdf ├── ONVIF-Core-Specification-v1712.pdf ├── ONVIF-Core-Specification-v230.pdf ├── ONVIF-Credential-Service-Spec-v100.pdf ├── ONVIF-DeviceIo-Service-Spec-v1712.pdf ├── ONVIF-DeviceIo-Service-Spec-v221.pdf ├── ONVIF-Display-Service-Spec-v230.pdf ├── ONVIF-DoorControl-Service-Spec-v1712.pdf ├── ONVIF-ExportFileFormat-Spec-v1706.pdf ├── ONVIF-Imaging-Service-Spec-v1706.pdf ├── ONVIF-Imaging-Service-Spec-v221.pdf ├── ONVIF-Media-Service-Spec-v1706.pdf ├── ONVIF-Media2-Service-Spec-v1712.pdf ├── ONVIF-PTZ-Service-Spec-v1712.pdf ├── ONVIF-Provisioning-Service-Spec-v1612.pdf ├── ONVIF-Receiver-Service-Spec-v1706.pdf ├── ONVIF-RecordingControl-Service-Spec-v1712.pdf ├── ONVIF-RecordingSearch-Service-Spec-v1706.pdf ├── ONVIF-ReplayControl-Service-Spec-v1706.pdf ├── ONVIF-Scheduler-Service-Spec-v100.pdf ├── ONVIF-Streaming-Spec-v1712.pdf ├── ONVIF-Thermal-Service-Spec-v1706.pdf ├── ONVIF-VideoAnalyticsDevice-Service-Spec-v211.pdf ├── ONVIF_Profile_-S_Specification_v1-1-1.pdf ├── ONVIF_Profile_A_Specification_v1-0.pdf ├── ONVIF_Profile_Feature_overview_v2-0.pdf ├── ONVIF_Profile_G_Specification_v1-0.pdf ├── ONVIF_Profile_Q_Specification_v1-0.pdf ├── ONVIF_Profile_T_Specification_RC_v1-3.pdf ├── ONVIF_WG-APG-Application_Programmers_Guide-1.pdf ├── Version_Handling-1.pdf └── service-specifications │ ├── ONVIF-AccessControl-Service-Spec-v103.pdf │ ├── ONVIF-AccessRules-Service-Spec-v100.pdf │ ├── ONVIF-ActionEngine-Service-Spec-v100.pdf │ ├── ONVIF-AdvancedSecurity-Service-Spec-v130.pdf │ ├── ONVIF-Analytics-Service-Spec-v1712.pdf │ ├── ONVIF-Credential-Service-Spec-v1706.pdf │ ├── ONVIF-DeviceIo-Service-Spec-v1712.pdf │ ├── ONVIF-Imaging-Service-Spec-v1706.pdf │ ├── ONVIF-Media-Service-Spec-v1706.pdf │ ├── ONVIF-Media2-Service-Spec-v1712.pdf │ ├── ONVIF-PTZ-Service-Spec-v1712.pdf │ ├── ONVIF-Provisioning-Service-Spec-v1612.pdf │ ├── ONVIF-Receiver-Service-Spec-v1706.pdf │ ├── ONVIF-RecordingControl-Service-Spec-v1712.pdf │ ├── ONVIF-RecordingSearch-Service-Spec-v1706.pdf │ ├── ONVIF-ReplayControl-Service-Spec-v1706.pdf │ ├── ONVIF-Scheduler-Service-Spec-v100.pdf │ ├── ONVIF-Thermal-Service-Spec-v1706.pdf │ └── ONVIF-VideoAnalyticsDevice-Service-Spec-v211.pdf ├── jest.config.js ├── lib ├── camera.js ├── modules │ ├── access.js │ ├── accessrules.js │ ├── action.js │ ├── analytics.js │ ├── core.js │ ├── credential.js │ ├── deviceio.js │ ├── discovery.js │ ├── display.js │ ├── door.js │ ├── events.js │ ├── imaging.js │ ├── media.js │ ├── media2.js │ ├── ptz.js │ ├── receiver.js │ ├── recording.js │ ├── replay.js │ ├── schedule.js │ ├── search.js │ ├── security.js │ ├── thermal.js │ └── videoanalytics.js ├── onvif-nvt.js └── utils │ ├── config.js │ ├── save-xml.js │ ├── snapshot.js │ ├── soap.js │ └── util.js ├── package.json ├── run ├── config.js ├── run.analytics.js ├── run.core.js ├── run.discovery.js ├── run.events.js ├── run.js ├── run.media.js ├── run.ptz.js ├── run.reboot.js └── run.snapshot.js ├── test ├── analytics.test.js ├── camera.test.js ├── config.js ├── core.test.js ├── data │ └── xml │ │ ├── axis │ │ ├── core │ │ │ ├── GetAccessPolicy.Request.xml │ │ │ ├── GetAccessPolicy.Response.xml │ │ │ ├── GetCACertificates.Request.xml │ │ │ ├── GetCACertificates.Response.xml │ │ │ ├── GetCapabilities.Request.xml │ │ │ ├── GetCapabilities.Response.xml │ │ │ ├── GetCertificates.Request.xml │ │ │ ├── GetCertificates.Response.xml │ │ │ ├── GetCertificatesStatus.Request.xml │ │ │ ├── GetCertificatesStatus.Response.xml │ │ │ ├── GetClientCertificateMode.Request.xml │ │ │ ├── GetClientCertificateMode.Response.xml │ │ │ ├── GetDNS.Request.xml │ │ │ ├── GetDNS.Response.xml │ │ │ ├── GetDPAddresses.Error.xml │ │ │ ├── GetDPAddresses.Request.xml │ │ │ ├── GetDeviceInformation.Request.xml │ │ │ ├── GetDeviceInformation.Response.xml │ │ │ ├── GetDiscoveryMode.Request.xml │ │ │ ├── GetDiscoveryMode.Response.xml │ │ │ ├── GetDot11Capabilities.Error.xml │ │ │ ├── GetDot11Capabilities.Request.xml │ │ │ ├── GetDot11Status.Error.xml │ │ │ ├── GetDot11Status.Request.xml │ │ │ ├── GetDot1XConfigurations.Error.xml │ │ │ ├── GetDot1XConfigurations.Request.xml │ │ │ ├── GetDynamicDNS.Request.xml │ │ │ ├── GetDynamicDNS.Response.xml │ │ │ ├── GetEndpointReference.Error.xml │ │ │ ├── GetEndpointReference.Request.xml │ │ │ ├── GetGeoLocation.Error.xml │ │ │ ├── GetGeoLocation.Request.xml │ │ │ ├── GetHostname.Request.xml │ │ │ ├── GetHostname.Response.xml │ │ │ ├── GetIPAddressFilter.Request.xml │ │ │ ├── GetIPAddressFilter.Response.xml │ │ │ ├── GetNTP.Request.xml │ │ │ ├── GetNTP.Response.xml │ │ │ ├── GetNetworkDefaultGateway.Request.xml │ │ │ ├── GetNetworkDefaultGateway.Response.xml │ │ │ ├── GetNetworkInterfaces.Request.xml │ │ │ ├── GetNetworkInterfaces.Response.xml │ │ │ ├── GetNetworkProtocols.Request.xml │ │ │ ├── GetNetworkProtocols.Response.xml │ │ │ ├── GetRelayOutputs.Request.xml │ │ │ ├── GetRelayOutputs.Response.xml │ │ │ ├── GetRemoteDiscoveryMode.Error.xml │ │ │ ├── GetRemoteDiscoveryMode.Request.xml │ │ │ ├── GetScopes.Request.xml │ │ │ ├── GetScopes.Response.xml │ │ │ ├── GetServiceCapabilities.Error.xml │ │ │ ├── GetServiceCapabilities.Request.xml │ │ │ ├── GetServices.Error.xml │ │ │ ├── GetServices.Request.xml │ │ │ ├── GetSystemBackup.Error.xml │ │ │ ├── GetSystemBackup.Request.xml │ │ │ ├── GetSystemDateAndTime.Request.xml │ │ │ ├── GetSystemDateAndTime.Response.xml │ │ │ ├── GetSystemLog.Error.xml │ │ │ ├── GetSystemLog.Request.xml │ │ │ ├── GetSystemSupportInformation.Error.xml │ │ │ ├── GetSystemSupportInformation.Request.xml │ │ │ ├── GetSystemUris.Error.xml │ │ │ ├── GetSystemUris.Request.xml │ │ │ ├── GetUsers.Request.xml │ │ │ ├── GetUsers.Response.xml │ │ │ ├── GetWsdlUrl.Request.xml │ │ │ ├── GetWsdlUrl.Response.xml │ │ │ ├── GetZeroConfiguration.Request.xml │ │ │ ├── GetZeroConfiguration.Response.xml │ │ │ ├── ScanAvailableDot11Networks.Error.xml │ │ │ ├── ScanAvailableDot11Networks.Request.xml │ │ │ ├── SetDNS.Error.xml │ │ │ ├── SetDNS.Request.xml │ │ │ ├── SetDynamicDNS.Error.xml │ │ │ ├── SetDynamicDNS.Request.xml │ │ │ ├── SetHostname.Request.xml │ │ │ ├── SetHostname.Response.xml │ │ │ ├── SetHostnameFromDHCP.Error.xml │ │ │ ├── SetHostnameFromDHCP.Request.xml │ │ │ ├── SetNTP.Error.xml │ │ │ ├── SetNTP.Request.xml │ │ │ ├── SystemReboot.Request.xml │ │ │ └── SystemReboot.Response.xml │ │ ├── events │ │ │ ├── CreatePullPointSubscription.Error.xml │ │ │ ├── CreatePullPointSubscription.Request.xml │ │ │ ├── CreatePullPointSubscription.Response.xml │ │ │ ├── GetEventProperties.Request.xml │ │ │ ├── GetEventProperties.Response.xml │ │ │ ├── GetServiceCapabilities.Error.xml │ │ │ ├── GetServiceCapabilities.Request.xml │ │ │ ├── PullMessages.Error.xml │ │ │ ├── PullMessages.Request.xml │ │ │ ├── SetSynchronizationPoint.Error.xml │ │ │ └── SetSynchronizationPoint.Request.xml │ │ ├── media │ │ │ ├── GetAudioDecoderConfigurations.Error.xml │ │ │ ├── GetAudioDecoderConfigurations.Request.xml │ │ │ ├── GetAudioEncoderConfigurations.Error.xml │ │ │ ├── GetAudioEncoderConfigurations.Request.xml │ │ │ ├── GetAudioOutputConfigurations.Error.xml │ │ │ ├── GetAudioOutputConfigurations.Request.xml │ │ │ ├── GetAudioOutputs.Error.xml │ │ │ ├── GetAudioOutputs.Request.xml │ │ │ ├── GetAudioSourceConfigurations.Error.xml │ │ │ ├── GetAudioSourceConfigurations.Request.xml │ │ │ ├── GetAudioSources.Error.xml │ │ │ ├── GetAudioSources.Request.xml │ │ │ ├── GetMetadataConfigurations.Request.xml │ │ │ ├── GetMetadataConfigurations.Response.xml │ │ │ ├── GetOSDs.Error.xml │ │ │ ├── GetOSDs.Request.xml │ │ │ ├── GetProfile.Request.xml │ │ │ ├── GetProfile.Response.xml │ │ │ ├── GetProfiles.Request.xml │ │ │ ├── GetProfiles.Response.xml │ │ │ ├── GetSnapshotUri.Request.xml │ │ │ ├── GetSnapshotUri.Response.xml │ │ │ ├── GetStreamUri.Request.xml │ │ │ ├── GetStreamUri.Response.xml │ │ │ ├── GetVideoAnalyticsConfigurations.Error.xml │ │ │ ├── GetVideoAnalyticsConfigurations.Request.xml │ │ │ ├── GetVideoEncoderConfigurations.Request.xml │ │ │ ├── GetVideoEncoderConfigurations.Response.xml │ │ │ ├── GetVideoSourceConfigurations.Request.xml │ │ │ ├── GetVideoSourceConfigurations.Response.xml │ │ │ ├── GetVideoSources.Request.xml │ │ │ └── GetVideoSources.Response.xml │ │ └── ptz │ │ │ ├── AbsoluteMove.Request.xml │ │ │ ├── AbsoluteMove.Response.xml │ │ │ ├── ContinuousMove.Request.xml │ │ │ ├── ContinuousMove.Response.xml │ │ │ ├── GetCompatibleConfigurations.Error.xml │ │ │ ├── GetCompatibleConfigurations.Request.xml │ │ │ ├── GetConfiguration.Request.xml │ │ │ ├── GetConfiguration.Response.xml │ │ │ ├── GetConfigurationOptions.Request.xml │ │ │ ├── GetConfigurationOptions.Response.xml │ │ │ ├── GetConfigurations.Request.xml │ │ │ ├── GetConfigurations.Response.xml │ │ │ ├── GetNode.Request.xml │ │ │ ├── GetNode.Response.xml │ │ │ ├── GetNodes.Request.xml │ │ │ ├── GetNodes.Response.xml │ │ │ ├── GetPresets.Request.xml │ │ │ ├── GetPresets.Response.xml │ │ │ ├── GetStatus.Request.xml │ │ │ ├── GetStatus.Response.xml │ │ │ ├── GotoHomePosition.Request.xml │ │ │ ├── GotoHomePosition.Response.xml │ │ │ ├── GotoPreset.Request.xml │ │ │ ├── GotoPreset.Response.xml │ │ │ ├── RelativeMove.Request.xml │ │ │ ├── RelativeMove.Response.xml │ │ │ ├── RemovePreset.Request.xml │ │ │ ├── RemovePreset.Response.xml │ │ │ ├── SetHomePosition.Request.xml │ │ │ ├── SetHomePosition.Response.xml │ │ │ ├── SetPreset.Request.xml │ │ │ ├── SetPreset.Response.xml │ │ │ ├── Stop.Request.xml │ │ │ └── Stop.Response.xml │ │ ├── hikvision-fixed │ │ ├── analytics │ │ │ ├── GetAnalyticsModuleOptions.Error.xml │ │ │ ├── GetAnalyticsModuleOptions.Request.xml │ │ │ ├── GetAnalyticsModules.Request.xml │ │ │ ├── GetAnalyticsModules.Response.xml │ │ │ ├── GetRules.Request.xml │ │ │ ├── GetRules.Response.xml │ │ │ ├── GetServiceCapabilities.Request.xml │ │ │ ├── GetServiceCapabilities.Response.xml │ │ │ ├── GetSupportedAnalyticsModules.Request.xml │ │ │ ├── GetSupportedAnalyticsModules.Response.xml │ │ │ ├── GetSupportedRules.Request.xml │ │ │ └── GetSupportedRules.Response.xml │ │ ├── core │ │ │ ├── GetAccessPolicy.Request.xml │ │ │ ├── GetAccessPolicy.Response.xml │ │ │ ├── GetCACertificates.Error.xml │ │ │ ├── GetCACertificates.Request.xml │ │ │ ├── GetCapabilities.Request.xml │ │ │ ├── GetCapabilities.Response.xml │ │ │ ├── GetCertificates.Error.xml │ │ │ ├── GetCertificates.Request.xml │ │ │ ├── GetCertificatesStatus.Error.xml │ │ │ ├── GetCertificatesStatus.Request.xml │ │ │ ├── GetClientCertificateMode.Error.xml │ │ │ ├── GetClientCertificateMode.Request.xml │ │ │ ├── GetDNS.Request.xml │ │ │ ├── GetDNS.Response.xml │ │ │ ├── GetDPAddresses.Request.xml │ │ │ ├── GetDPAddresses.Response.xml │ │ │ ├── GetDeviceInformation.Request.xml │ │ │ ├── GetDeviceInformation.Response.xml │ │ │ ├── GetDiscoveryMode.Request.xml │ │ │ ├── GetDiscoveryMode.Response.xml │ │ │ ├── GetDot11Capabilities.Error.xml │ │ │ ├── GetDot11Capabilities.Request.xml │ │ │ ├── GetDot11Status.Error.xml │ │ │ ├── GetDot11Status.Request.xml │ │ │ ├── GetDot1XConfigurations.Error.xml │ │ │ ├── GetDot1XConfigurations.Request.xml │ │ │ ├── GetDynamicDNS.Request.xml │ │ │ ├── GetDynamicDNS.Response.xml │ │ │ ├── GetEndpointReference.Error.xml │ │ │ ├── GetEndpointReference.Request.xml │ │ │ ├── GetGeoLocation.Error.xml │ │ │ ├── GetGeoLocation.Request.xml │ │ │ ├── GetHostname.Request.xml │ │ │ ├── GetHostname.Response.xml │ │ │ ├── GetIPAddressFilter.Request.xml │ │ │ ├── GetIPAddressFilter.Response.xml │ │ │ ├── GetNTP.Request.xml │ │ │ ├── GetNTP.Response.xml │ │ │ ├── GetNetworkDefaultGateway.Request.xml │ │ │ ├── GetNetworkDefaultGateway.Response.xml │ │ │ ├── GetNetworkInterfaces.Request.xml │ │ │ ├── GetNetworkInterfaces.Response.xml │ │ │ ├── GetNetworkProtocols.Request.xml │ │ │ ├── GetNetworkProtocols.Response.xml │ │ │ ├── GetRelayOutputs.Request.xml │ │ │ ├── GetRelayOutputs.Response.xml │ │ │ ├── GetRemoteDiscoveryMode.Request.xml │ │ │ ├── GetRemoteDiscoveryMode.Response.xml │ │ │ ├── GetScopes.Request.xml │ │ │ ├── GetScopes.Response.xml │ │ │ ├── GetServiceCapabilities.Request.xml │ │ │ ├── GetServiceCapabilities.Response.xml │ │ │ ├── GetServices.Error.xml │ │ │ ├── GetServices.Request.xml │ │ │ ├── GetServices.Response.xml │ │ │ ├── GetSystemBackup.Request.xml │ │ │ ├── GetSystemBackup.Response.xml │ │ │ ├── GetSystemDateAndTime.Request.xml │ │ │ ├── GetSystemDateAndTime.Response.xml │ │ │ ├── GetSystemLog.Request.xml │ │ │ ├── GetSystemLog.Response.xml │ │ │ ├── GetSystemSupportInformation.Request.xml │ │ │ ├── GetSystemSupportInformation.Response.xml │ │ │ ├── GetSystemUris.Request.xml │ │ │ ├── GetSystemUris.Response.xml │ │ │ ├── GetUsers.Request.xml │ │ │ ├── GetUsers.Response.xml │ │ │ ├── GetWsdlUrl.Request.xml │ │ │ ├── GetWsdlUrl.Response.xml │ │ │ ├── GetZeroConfiguration.Request.xml │ │ │ ├── GetZeroConfiguration.Response.xml │ │ │ ├── ScanAvailableDot11Networks.Error.xml │ │ │ ├── ScanAvailableDot11Networks.Request.xml │ │ │ ├── SetDNS.Request.xml │ │ │ ├── SetDNS.Response.xml │ │ │ ├── SetDynamicDNS.Request.xml │ │ │ ├── SetDynamicDNS.Response.xml │ │ │ ├── SetHostname.Request.xml │ │ │ ├── SetHostname.Response.xml │ │ │ ├── SetHostnameFromDHCP.Error.xml │ │ │ ├── SetHostnameFromDHCP.Request.xml │ │ │ ├── SetHostnameFromDHCP.Response.xml │ │ │ ├── SetNTP.Error.xml │ │ │ ├── SetNTP.Request.xml │ │ │ ├── SetNTP.Response.xml │ │ │ ├── SystemReboot.Request.xml │ │ │ └── SystemReboot.Response.xml │ │ ├── events │ │ │ ├── CreatePullPointSubscription.Request.xml │ │ │ ├── CreatePullPointSubscription.Response.xml │ │ │ ├── GetEventProperties.Request.xml │ │ │ ├── GetEventProperties.Response.xml │ │ │ ├── GetServiceCapabilities.Request.xml │ │ │ ├── GetServiceCapabilities.Response.xml │ │ │ ├── PullMessages.Request.xml │ │ │ ├── PullMessages.Response.xml │ │ │ ├── SetSynchronizationPoint.Request.xml │ │ │ └── SetSynchronizationPoint.Response.xml │ │ └── media │ │ │ ├── GetAudioDecoderConfigurations.Error.xml │ │ │ ├── GetAudioDecoderConfigurations.Request.xml │ │ │ ├── GetAudioEncoderConfigurations.Error.xml │ │ │ ├── GetAudioEncoderConfigurations.Request.xml │ │ │ ├── GetAudioOutputConfigurations.Error.xml │ │ │ ├── GetAudioOutputConfigurations.Request.xml │ │ │ ├── GetAudioOutputs.Error.xml │ │ │ ├── GetAudioOutputs.Request.xml │ │ │ ├── GetAudioSourceConfigurations.Error.xml │ │ │ ├── GetAudioSourceConfigurations.Request.xml │ │ │ ├── GetAudioSources.Error.xml │ │ │ ├── GetAudioSources.Request.xml │ │ │ ├── GetMetadataConfigurations.Request.xml │ │ │ ├── GetMetadataConfigurations.Response.xml │ │ │ ├── GetOSDs.Request.xml │ │ │ ├── GetOSDs.Response.xml │ │ │ ├── GetProfile.Request.xml │ │ │ ├── GetProfile.Response.xml │ │ │ ├── GetProfiles.Request.xml │ │ │ ├── GetProfiles.Response.xml │ │ │ ├── GetSnapshotUri.Request.xml │ │ │ ├── GetSnapshotUri.Response.xml │ │ │ ├── GetStreamUri.Request.xml │ │ │ ├── GetStreamUri.Response.xml │ │ │ ├── GetVideoAnalyticsConfigurations.Request.xml │ │ │ ├── GetVideoAnalyticsConfigurations.Response.xml │ │ │ ├── GetVideoEncoderConfigurations.Request.xml │ │ │ ├── GetVideoEncoderConfigurations.Response.xml │ │ │ ├── GetVideoSourceConfigurations.Request.xml │ │ │ ├── GetVideoSourceConfigurations.Response.xml │ │ │ ├── GetVideoSources.Request.xml │ │ │ └── GetVideoSources.Response.xml │ │ ├── hikvision │ │ ├── analytics │ │ │ ├── GetAnalyticsModuleOptions.Error.xml │ │ │ ├── GetAnalyticsModuleOptions.Request.xml │ │ │ ├── GetAnalyticsModules.Request.xml │ │ │ ├── GetAnalyticsModules.Response.xml │ │ │ ├── GetRules.Request.xml │ │ │ ├── GetRules.Response.xml │ │ │ ├── GetServiceCapabilities.Request.xml │ │ │ ├── GetServiceCapabilities.Response.xml │ │ │ ├── GetSupportedAnalyticsModules.Request.xml │ │ │ ├── GetSupportedAnalyticsModules.Response.xml │ │ │ ├── GetSupportedRules.Request.xml │ │ │ └── GetSupportedRules.Response.xml │ │ ├── core │ │ │ ├── GetAccessPolicy.Request.xml │ │ │ ├── GetAccessPolicy.Response.xml │ │ │ ├── GetCACertificates.Error.xml │ │ │ ├── GetCACertificates.Request.xml │ │ │ ├── GetCapabilities.Request.xml │ │ │ ├── GetCapabilities.Response.xml │ │ │ ├── GetCertificates.Error.xml │ │ │ ├── GetCertificates.Request.xml │ │ │ ├── GetCertificatesStatus.Error.xml │ │ │ ├── GetCertificatesStatus.Request.xml │ │ │ ├── GetClientCertificateMode.Error.xml │ │ │ ├── GetClientCertificateMode.Request.xml │ │ │ ├── GetDNS.Request.xml │ │ │ ├── GetDNS.Response.xml │ │ │ ├── GetDPAddresses.Request.xml │ │ │ ├── GetDPAddresses.Response.xml │ │ │ ├── GetDeviceInformation.Request.xml │ │ │ ├── GetDeviceInformation.Response.xml │ │ │ ├── GetDiscoveryMode.Request.xml │ │ │ ├── GetDiscoveryMode.Response.xml │ │ │ ├── GetDot11Capabilities.Error.xml │ │ │ ├── GetDot11Capabilities.Request.xml │ │ │ ├── GetDot11Status.Error.xml │ │ │ ├── GetDot11Status.Request.xml │ │ │ ├── GetDot1XConfigurations.Error.xml │ │ │ ├── GetDot1XConfigurations.Request.xml │ │ │ ├── GetDynamicDNS.Request.xml │ │ │ ├── GetDynamicDNS.Response.xml │ │ │ ├── GetEndpointReference.Error.xml │ │ │ ├── GetEndpointReference.Request.xml │ │ │ ├── GetGeoLocation.Error.xml │ │ │ ├── GetGeoLocation.Request.xml │ │ │ ├── GetHostname.Request.xml │ │ │ ├── GetHostname.Response.xml │ │ │ ├── GetIPAddressFilter.Request.xml │ │ │ ├── GetIPAddressFilter.Response.xml │ │ │ ├── GetNTP.Request.xml │ │ │ ├── GetNTP.Response.xml │ │ │ ├── GetNetworkDefaultGateway.Request.xml │ │ │ ├── GetNetworkDefaultGateway.Response.xml │ │ │ ├── GetNetworkInterfaces.Request.xml │ │ │ ├── GetNetworkInterfaces.Response.xml │ │ │ ├── GetNetworkProtocols.Request.xml │ │ │ ├── GetNetworkProtocols.Response.xml │ │ │ ├── GetRelayOutputs.Request.xml │ │ │ ├── GetRelayOutputs.Response.xml │ │ │ ├── GetRemoteDiscoveryMode.Request.xml │ │ │ ├── GetRemoteDiscoveryMode.Response.xml │ │ │ ├── GetScopes.Request.xml │ │ │ ├── GetScopes.Response.xml │ │ │ ├── GetServiceCapabilities.Request.xml │ │ │ ├── GetServiceCapabilities.Response.xml │ │ │ ├── GetServices.Error.xml │ │ │ ├── GetServices.Request.xml │ │ │ ├── GetServices.Response.xml │ │ │ ├── GetSystemBackup.Request.xml │ │ │ ├── GetSystemDateAndTime.Request.xml │ │ │ ├── GetSystemDateAndTime.Response.xml │ │ │ ├── GetSystemLog.Request.xml │ │ │ ├── GetSystemLog.Response.xml │ │ │ ├── GetSystemSupportInformation.Request.xml │ │ │ ├── GetSystemSupportInformation.Response.xml │ │ │ ├── GetSystemUris.Request.xml │ │ │ ├── GetSystemUris.Response.xml │ │ │ ├── GetUsers.Request.xml │ │ │ ├── GetUsers.Response.xml │ │ │ ├── GetWsdlUrl.Request.xml │ │ │ ├── GetWsdlUrl.Response.xml │ │ │ ├── GetZeroConfiguration.Request.xml │ │ │ ├── GetZeroConfiguration.Response.xml │ │ │ ├── ScanAvailableDot11Networks.Error.xml │ │ │ ├── ScanAvailableDot11Networks.Request.xml │ │ │ ├── SetDNS.Error.xml │ │ │ ├── SetDNS.Request.xml │ │ │ ├── SetDNS.Response.xml │ │ │ ├── SetDynamicDNS.Request.xml │ │ │ ├── SetDynamicDNS.Response.xml │ │ │ ├── SetHostname.Request.xml │ │ │ ├── SetHostname.Response.xml │ │ │ ├── SetHostnameFromDHCP.Error.xml │ │ │ ├── SetHostnameFromDHCP.Request.xml │ │ │ ├── SetHostnameFromDHCP.Response.xml │ │ │ ├── SetNTP.Error.xml │ │ │ ├── SetNTP.Request.xml │ │ │ ├── SetNTP.Response.xml │ │ │ ├── SystemReboot.Request.xml │ │ │ └── SystemReboot.Response.xml │ │ ├── events │ │ │ ├── CreatePullPointSubscription.Request.xml │ │ │ ├── CreatePullPointSubscription.Response.xml │ │ │ ├── GetEventProperties.Request.xml │ │ │ ├── GetEventProperties.Response.xml │ │ │ ├── GetServiceCapabilities.Request.xml │ │ │ ├── GetServiceCapabilities.Response.xml │ │ │ ├── PullMessages.Request.xml │ │ │ ├── PullMessages.Response.xml │ │ │ ├── SetSynchronizationPoint.Request.xml │ │ │ └── SetSynchronizationPoint.Response.xml │ │ ├── media │ │ │ ├── GetAudioDecoderConfigurations.Request.xml │ │ │ ├── GetAudioDecoderConfigurations.Response.xml │ │ │ ├── GetAudioEncoderConfigurations.Request.xml │ │ │ ├── GetAudioEncoderConfigurations.Response.xml │ │ │ ├── GetAudioOutputConfigurations.Request.xml │ │ │ ├── GetAudioOutputConfigurations.Response.xml │ │ │ ├── GetAudioOutputs.Request.xml │ │ │ ├── GetAudioOutputs.Response.xml │ │ │ ├── GetAudioSourceConfigurations.Request.xml │ │ │ ├── GetAudioSourceConfigurations.Response.xml │ │ │ ├── GetAudioSources.Request.xml │ │ │ ├── GetAudioSources.Response.xml │ │ │ ├── GetMetadataConfigurations.Request.xml │ │ │ ├── GetMetadataConfigurations.Response.xml │ │ │ ├── GetOSDs.Request.xml │ │ │ ├── GetOSDs.Response.xml │ │ │ ├── GetProfile.Request.xml │ │ │ ├── GetProfile.Response.xml │ │ │ ├── GetProfiles.Request.xml │ │ │ ├── GetProfiles.Response.xml │ │ │ ├── GetSnapshotUri.Request.xml │ │ │ ├── GetSnapshotUri.Response.xml │ │ │ ├── GetStreamUri.Request.xml │ │ │ ├── GetStreamUri.Response.xml │ │ │ ├── GetVideoAnalyticsConfigurations.Request.xml │ │ │ ├── GetVideoAnalyticsConfigurations.Response.xml │ │ │ ├── GetVideoEncoderConfigurations.Request.xml │ │ │ ├── GetVideoEncoderConfigurations.Response.xml │ │ │ ├── GetVideoSourceConfigurations.Request.xml │ │ │ ├── GetVideoSourceConfigurations.Response.xml │ │ │ ├── GetVideoSources.Request.xml │ │ │ └── GetVideoSources.Response.xml │ │ └── ptz │ │ │ ├── AbsoluteMove.Request.xml │ │ │ ├── AbsoluteMove.Response.xml │ │ │ ├── ContinuousMove.Request.xml │ │ │ ├── ContinuousMove.Response.xml │ │ │ ├── GetCompatibleConfigurations.Error.xml │ │ │ ├── GetCompatibleConfigurations.Request.xml │ │ │ ├── GetConfiguration.Request.xml │ │ │ ├── GetConfiguration.Response.xml │ │ │ ├── GetConfigurationOptions.Request.xml │ │ │ ├── GetConfigurationOptions.Response.xml │ │ │ ├── GetConfigurations.Request.xml │ │ │ ├── GetConfigurations.Response.xml │ │ │ ├── GetNode.Request.xml │ │ │ ├── GetNode.Response.xml │ │ │ ├── GetNodes.Request.xml │ │ │ ├── GetNodes.Response.xml │ │ │ ├── GetPresets.Request.xml │ │ │ ├── GetPresets.Response.xml │ │ │ ├── GetStatus.Request.xml │ │ │ ├── GetStatus.Response.xml │ │ │ ├── GotoHomePosition.Request.xml │ │ │ ├── GotoHomePosition.Response.xml │ │ │ ├── GotoPreset.Request.xml │ │ │ ├── GotoPreset.Response.xml │ │ │ ├── RelativeMove.Request.xml │ │ │ ├── RelativeMove.Response.xml │ │ │ ├── RemovePreset.Request.xml │ │ │ ├── RemovePreset.Response.xml │ │ │ ├── SetHomePosition.Request.xml │ │ │ ├── SetHomePosition.Response.xml │ │ │ ├── SetPreset.Request.xml │ │ │ ├── SetPreset.Response.xml │ │ │ ├── Stop.Request.xml │ │ │ └── Stop.Response.xml │ │ ├── pelco │ │ ├── core │ │ │ ├── GetAccessPolicy.Error.xml │ │ │ ├── GetAccessPolicy.Request.xml │ │ │ ├── GetCACertificates.Request.xml │ │ │ ├── GetCACertificates.Response.xml │ │ │ ├── GetCapabilities.Request.xml │ │ │ ├── GetCapabilities.Response.xml │ │ │ ├── GetCertificates.Request.xml │ │ │ ├── GetCertificates.Response.xml │ │ │ ├── GetCertificatesStatus.Request.xml │ │ │ ├── GetCertificatesStatus.Response.xml │ │ │ ├── GetClientCertificateMode.Request.xml │ │ │ ├── GetClientCertificateMode.Response.xml │ │ │ ├── GetDNS.Request.xml │ │ │ ├── GetDNS.Response.xml │ │ │ ├── GetDPAddresses.Error.xml │ │ │ ├── GetDPAddresses.Request.xml │ │ │ ├── GetDeviceInformation.Request.xml │ │ │ ├── GetDeviceInformation.Response.xml │ │ │ ├── GetDiscoveryMode.Request.xml │ │ │ ├── GetDiscoveryMode.Response.xml │ │ │ ├── GetDot11Capabilities.Error.xml │ │ │ ├── GetDot11Capabilities.Request.xml │ │ │ ├── GetDot11Status.Error.xml │ │ │ ├── GetDot11Status.Request.xml │ │ │ ├── GetDot1XConfigurations.Request.xml │ │ │ ├── GetDot1XConfigurations.Response.xml │ │ │ ├── GetDynamicDNS.Error.xml │ │ │ ├── GetDynamicDNS.Request.xml │ │ │ ├── GetEndpointReference.Error.xml │ │ │ ├── GetEndpointReference.Request.xml │ │ │ ├── GetGeoLocation.Error.xml │ │ │ ├── GetGeoLocation.Request.xml │ │ │ ├── GetHostname.Request.xml │ │ │ ├── GetHostname.Response.xml │ │ │ ├── GetIPAddressFilter.Request.xml │ │ │ ├── GetIPAddressFilter.Response.xml │ │ │ ├── GetNTP.Request.xml │ │ │ ├── GetNTP.Response.xml │ │ │ ├── GetNetworkDefaultGateway.Request.xml │ │ │ ├── GetNetworkDefaultGateway.Response.xml │ │ │ ├── GetNetworkInterfaces.Request.xml │ │ │ ├── GetNetworkInterfaces.Response.xml │ │ │ ├── GetNetworkProtocols.Request.xml │ │ │ ├── GetNetworkProtocols.Response.xml │ │ │ ├── GetRelayOutputs.Request.xml │ │ │ ├── GetRelayOutputs.Response.xml │ │ │ ├── GetRemoteDiscoveryMode.Error.xml │ │ │ ├── GetRemoteDiscoveryMode.Request.xml │ │ │ ├── GetScopes.Request.xml │ │ │ ├── GetScopes.Response.xml │ │ │ ├── GetServiceCapabilities.Request.xml │ │ │ ├── GetServiceCapabilities.Response.xml │ │ │ ├── GetServices.Request.xml │ │ │ ├── GetServices.Response.xml │ │ │ ├── GetSystemBackup.Request.xml │ │ │ ├── GetSystemBackup.Response.xml │ │ │ ├── GetSystemDateAndTime.Request.xml │ │ │ ├── GetSystemDateAndTime.Response.xml │ │ │ ├── GetSystemLog.Request.xml │ │ │ ├── GetSystemLog.Response.xml │ │ │ ├── GetSystemSupportInformation.Request.xml │ │ │ ├── GetSystemSupportInformation.Response.xml │ │ │ ├── GetSystemUris.Request.xml │ │ │ ├── GetSystemUris.Response.xml │ │ │ ├── GetUsers.Request.xml │ │ │ ├── GetUsers.Response.xml │ │ │ ├── GetWsdlUrl.Request.xml │ │ │ ├── GetWsdlUrl.Response.xml │ │ │ ├── GetZeroConfiguration.Request.xml │ │ │ ├── GetZeroConfiguration.Response.xml │ │ │ ├── ScanAvailableDot11Networks.Error.xml │ │ │ ├── ScanAvailableDot11Networks.Request.xml │ │ │ ├── SetDNS.Request.xml │ │ │ ├── SetDNS.Response.xml │ │ │ ├── SetDynamicDNS.Error.xml │ │ │ ├── SetDynamicDNS.Request.xml │ │ │ ├── SetHostname.Request.xml │ │ │ ├── SetHostname.Response.xml │ │ │ ├── SetHostnameFromDHCP.Error.xml │ │ │ ├── SetHostnameFromDHCP.Request.xml │ │ │ ├── SetNTP.Request.xml │ │ │ ├── SetNTP.Response.xml │ │ │ ├── SystemReboot.Request.xml │ │ │ └── SystemReboot.Response.xml │ │ ├── events │ │ │ ├── CreatePullPointSubscription.Request.xml │ │ │ ├── CreatePullPointSubscription.Response.xml │ │ │ ├── GetEventProperties.Request.xml │ │ │ ├── GetEventProperties.Response.xml │ │ │ ├── GetServiceCapabilities.Request.xml │ │ │ ├── GetServiceCapabilities.Response.xml │ │ │ ├── PullMessages.Error.xml │ │ │ ├── PullMessages.Request.xml │ │ │ ├── PullMessages.Response.xml │ │ │ ├── SetSynchronizationPoint.Request.xml │ │ │ └── SetSynchronizationPoint.Response.xml │ │ ├── media │ │ │ ├── GetAudioDecoderConfigurations.Error.xml │ │ │ ├── GetAudioDecoderConfigurations.Request.xml │ │ │ ├── GetAudioEncoderConfigurations.Request.xml │ │ │ ├── GetAudioEncoderConfigurations.Response.xml │ │ │ ├── GetAudioOutputConfigurations.Error.xml │ │ │ ├── GetAudioOutputConfigurations.Request.xml │ │ │ ├── GetAudioOutputs.Request.xml │ │ │ ├── GetAudioOutputs.Response.xml │ │ │ ├── GetAudioSourceConfigurations.Request.xml │ │ │ ├── GetAudioSourceConfigurations.Response.xml │ │ │ ├── GetAudioSources.Request.xml │ │ │ ├── GetAudioSources.Response.xml │ │ │ ├── GetMetadataConfigurations.Request.xml │ │ │ ├── GetMetadataConfigurations.Response.xml │ │ │ ├── GetOSDs.Request.xml │ │ │ ├── GetOSDs.Response.xml │ │ │ ├── GetProfile.Request.xml │ │ │ ├── GetProfile.Response.xml │ │ │ ├── GetProfiles.Request.xml │ │ │ ├── GetProfiles.Response.xml │ │ │ ├── GetSnapshotUri.Request.xml │ │ │ ├── GetSnapshotUri.Response.xml │ │ │ ├── GetStreamUri.Request.xml │ │ │ ├── GetStreamUri.Response.xml │ │ │ ├── GetVideoAnalyticsConfigurations.Request.xml │ │ │ ├── GetVideoAnalyticsConfigurations.Response.xml │ │ │ ├── GetVideoEncoderConfigurations.Request.xml │ │ │ ├── GetVideoEncoderConfigurations.Response.xml │ │ │ ├── GetVideoSourceConfigurations.Request.xml │ │ │ ├── GetVideoSourceConfigurations.Response.xml │ │ │ ├── GetVideoSources.Request.xml │ │ │ └── GetVideoSources.Response.xml │ │ └── ptz │ │ │ ├── AbsoluteMove.Request.xml │ │ │ ├── AbsoluteMove.Response.xml │ │ │ ├── ContinuousMove.Request.xml │ │ │ ├── ContinuousMove.Response.xml │ │ │ ├── GetCompatibleConfigurations.Error.xml │ │ │ ├── GetCompatibleConfigurations.Request.xml │ │ │ ├── GetConfiguration.Request.xml │ │ │ ├── GetConfiguration.Response.xml │ │ │ ├── GetConfigurationOptions.Request.xml │ │ │ ├── GetConfigurationOptions.Response.xml │ │ │ ├── GetConfigurations.Request.xml │ │ │ ├── GetConfigurations.Response.xml │ │ │ ├── GetNode.Request.xml │ │ │ ├── GetNode.Response.xml │ │ │ ├── GetNodes.Request.xml │ │ │ ├── GetNodes.Response.xml │ │ │ ├── GetPresets.Request.xml │ │ │ ├── GetPresets.Response.xml │ │ │ ├── GetStatus.Request.xml │ │ │ ├── GetStatus.Response.xml │ │ │ ├── GotoHomePosition.Request.xml │ │ │ ├── GotoHomePosition.Response.xml │ │ │ ├── GotoPreset.Request.xml │ │ │ ├── GotoPreset.Response.xml │ │ │ ├── RelativeMove.Request.xml │ │ │ ├── RelativeMove.Response.xml │ │ │ ├── RemovePreset.Request.xml │ │ │ ├── RemovePreset.Response.xml │ │ │ ├── SetHomePosition.Request.xml │ │ │ ├── SetHomePosition.Response.xml │ │ │ ├── SetPreset.Request.xml │ │ │ ├── SetPreset.Response.xml │ │ │ ├── Stop.Request.xml │ │ │ └── Stop.Response.xml │ │ └── trendnet │ │ ├── analytics │ │ ├── GetAnalyticsModuleOptions.Error.xml │ │ ├── GetAnalyticsModuleOptions.Request.xml │ │ ├── GetAnalyticsModules.Request.xml │ │ ├── GetAnalyticsModules.Response.xml │ │ ├── GetRules.Request.xml │ │ ├── GetRules.Response.xml │ │ ├── GetServiceCapabilities.Request.xml │ │ ├── GetServiceCapabilities.Response.xml │ │ ├── GetSupportedAnalyticsModules.Request.xml │ │ ├── GetSupportedAnalyticsModules.Response.xml │ │ ├── GetSupportedRules.Request.xml │ │ └── GetSupportedRules.Response.xml │ │ ├── core │ │ ├── GetAccessPolicy.Request.xml │ │ ├── GetAccessPolicy.Response.xml │ │ ├── GetCACertificates.Error.xml │ │ ├── GetCACertificates.Request.xml │ │ ├── GetCapabilities.Request.xml │ │ ├── GetCapabilities.Response.xml │ │ ├── GetCertificates.Error.xml │ │ ├── GetCertificates.Request.xml │ │ ├── GetCertificatesStatus.Error.xml │ │ ├── GetCertificatesStatus.Request.xml │ │ ├── GetClientCertificateMode.Error.xml │ │ ├── GetClientCertificateMode.Request.xml │ │ ├── GetDNS.Request.xml │ │ ├── GetDNS.Response.xml │ │ ├── GetDPAddresses.Request.xml │ │ ├── GetDPAddresses.Response.xml │ │ ├── GetDeviceInformation.Error.xml │ │ ├── GetDeviceInformation.Request.xml │ │ ├── GetDeviceInformation.Response.xml │ │ ├── GetDiscoveryMode.Request.xml │ │ ├── GetDiscoveryMode.Response.xml │ │ ├── GetDot11Capabilities.Error.xml │ │ ├── GetDot11Capabilities.Request.xml │ │ ├── GetDot11Status.Error.xml │ │ ├── GetDot11Status.Request.xml │ │ ├── GetDot1XConfigurations.Error.xml │ │ ├── GetDot1XConfigurations.Request.xml │ │ ├── GetDynamicDNS.Request.xml │ │ ├── GetDynamicDNS.Response.xml │ │ ├── GetEndpointReference.Error.xml │ │ ├── GetEndpointReference.Request.xml │ │ ├── GetGeoLocation.Error.xml │ │ ├── GetGeoLocation.Request.xml │ │ ├── GetHostname.Request.xml │ │ ├── GetHostname.Response.xml │ │ ├── GetIPAddressFilter.Request.xml │ │ ├── GetIPAddressFilter.Response.xml │ │ ├── GetNTP.Request.xml │ │ ├── GetNTP.Response.xml │ │ ├── GetNetworkDefaultGateway.Request.xml │ │ ├── GetNetworkDefaultGateway.Response.xml │ │ ├── GetNetworkInterfaces.Request.xml │ │ ├── GetNetworkInterfaces.Response.xml │ │ ├── GetNetworkProtocols.Request.xml │ │ ├── GetNetworkProtocols.Response.xml │ │ ├── GetRelayOutputs.Request.xml │ │ ├── GetRelayOutputs.Response.xml │ │ ├── GetRemoteDiscoveryMode.Request.xml │ │ ├── GetRemoteDiscoveryMode.Response.xml │ │ ├── GetScopes.Request.xml │ │ ├── GetScopes.Response.xml │ │ ├── GetServiceCapabilities.Request.xml │ │ ├── GetServiceCapabilities.Response.xml │ │ ├── GetServices.Error.xml │ │ ├── GetServices.Request.xml │ │ ├── GetServices.Response.xml │ │ ├── GetSystemBackup.Request.xml │ │ ├── GetSystemBackup.Response.xml │ │ ├── GetSystemDateAndTime.Request.xml │ │ ├── GetSystemDateAndTime.Response.xml │ │ ├── GetSystemLog.Request.xml │ │ ├── GetSystemLog.Response.xml │ │ ├── GetSystemSupportInformation.Request.xml │ │ ├── GetSystemSupportInformation.Response.xml │ │ ├── GetSystemUris.Request.xml │ │ ├── GetSystemUris.Response.xml │ │ ├── GetUsers.Request.xml │ │ ├── GetUsers.Response.xml │ │ ├── GetWsdlUrl.Request.xml │ │ ├── GetWsdlUrl.Response.xml │ │ ├── GetZeroConfiguration.Request.xml │ │ ├── GetZeroConfiguration.Response.xml │ │ ├── ScanAvailableDot11Networks.Error.xml │ │ ├── ScanAvailableDot11Networks.Request.xml │ │ ├── SetDNS.Request.xml │ │ ├── SetDNS.Response.xml │ │ ├── SetDynamicDNS.Request.xml │ │ ├── SetDynamicDNS.Response.xml │ │ ├── SetHostname.Request.xml │ │ ├── SetHostname.Response.xml │ │ ├── SetHostnameFromDHCP.Error.xml │ │ ├── SetHostnameFromDHCP.Request.xml │ │ ├── SetHostnameFromDHCP.Response.xml │ │ ├── SetNTP.Error.xml │ │ ├── SetNTP.Request.xml │ │ ├── SetNTP.Response.xml │ │ ├── SystemReboot.Request.xml │ │ └── SystemReboot.Response.xml │ │ ├── events │ │ ├── CreatePullPointSubscription.Request.xml │ │ ├── CreatePullPointSubscription.Response.xml │ │ ├── GetEventProperties.Request.xml │ │ ├── GetEventProperties.Response.xml │ │ ├── GetServiceCapabilities.Request.xml │ │ ├── GetServiceCapabilities.Response.xml │ │ ├── PullMessages.Request.xml │ │ ├── PullMessages.Response.xml │ │ ├── SetSynchronizationPoint.Request.xml │ │ └── SetSynchronizationPoint.Response.xml │ │ └── media │ │ ├── GetAudioDecoderConfigurations.Error.xml │ │ ├── GetAudioDecoderConfigurations.Request.xml │ │ ├── GetAudioEncoderConfigurations.Error.xml │ │ ├── GetAudioEncoderConfigurations.Request.xml │ │ ├── GetAudioOutputConfigurations.Error.xml │ │ ├── GetAudioOutputConfigurations.Request.xml │ │ ├── GetAudioOutputs.Error.xml │ │ ├── GetAudioOutputs.Request.xml │ │ ├── GetAudioSourceConfigurations.Error.xml │ │ ├── GetAudioSourceConfigurations.Request.xml │ │ ├── GetAudioSources.Error.xml │ │ ├── GetAudioSources.Request.xml │ │ ├── GetMetadataConfigurations.Request.xml │ │ ├── GetMetadataConfigurations.Response.xml │ │ ├── GetOSDs.Request.xml │ │ ├── GetOSDs.Response.xml │ │ ├── GetProfile.Request.xml │ │ ├── GetProfile.Response.xml │ │ ├── GetProfiles.Request.xml │ │ ├── GetProfiles.Response.xml │ │ ├── GetSnapshotUri.Request.xml │ │ ├── GetSnapshotUri.Response.xml │ │ ├── GetStreamUri.Request.xml │ │ ├── GetStreamUri.Response.xml │ │ ├── GetVideoAnalyticsConfigurations.Request.xml │ │ ├── GetVideoAnalyticsConfigurations.Response.xml │ │ ├── GetVideoEncoderConfigurations.Request.xml │ │ ├── GetVideoEncoderConfigurations.Response.xml │ │ ├── GetVideoSourceConfigurations.Request.xml │ │ ├── GetVideoSourceConfigurations.Response.xml │ │ ├── GetVideoSources.Request.xml │ │ └── GetVideoSources.Response.xml ├── device.test.js ├── discovery.test.js ├── media.test.js ├── onvifManager.test.js └── ptz.test.js └── yarn.lock /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | jobs: 3 | build: 4 | working_directory: ~/onvif-nvt 5 | docker: 6 | - image: circleci/node:14.16.0 7 | steps: 8 | - checkout 9 | - run: 10 | name: update-npm 11 | command: 'sudo npm install -g npm@latest' 12 | - restore_cache: 13 | key: dependency-cache-{{ checksum "package.json" }} 14 | - run: 15 | name: install-npm-wee 16 | command: npm install 17 | - save_cache: 18 | key: dependency-cache-{{ checksum "package.json" }} 19 | paths: 20 | - ./node_modules 21 | - run: 22 | name: test 23 | command: npm test 24 | - run: 25 | name: test-and-code-coverage 26 | command: npm run test-ci 27 | # - store_artifacts: 28 | # path: test-results.xml 29 | # prefix: tests 30 | # - store_artifacts: 31 | # path: coverage 32 | # prefix: coverage 33 | # - store_test_results: 34 | # path: test-results.xml 35 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [hawkeye64]# Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .thumbs.db 3 | node_modules 4 | coverage 5 | npm-debug.log* 6 | yarn-debug.log* 7 | yarn-error.log* 8 | 9 | # Editor directories and files 10 | .idea 11 | *.suo 12 | *.ntvs* 13 | *.njsproj 14 | *.sln 15 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | test/ 2 | coverage/ 3 | docs/ 4 | documents/ 5 | run/ 6 | lib/ 7 | .git 8 | .circleci/ 9 | .vscode/ 10 | .eslintrc.js 11 | jest.config.js 12 | .git 13 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "node", 9 | "request": "launch", 10 | "name": "Launch Run (test)", 11 | "program": "${workspaceFolder}/run/run.js" 12 | }, 13 | { 14 | "type": "node", 15 | "request": "launch", 16 | "name": "Jest Debug", 17 | "program": "${workspaceRoot}/node_modules/jest/bin/jest.js", 18 | "args": [ 19 | "-i" 20 | ], 21 | "cwd": "${workspaceFolder}", 22 | "sourceMaps": false, 23 | "stopOnEntry": false, 24 | "smartStep": false 25 | } 26 | 27 | ] 28 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Jeffrey Galbraith (Hawkeye64) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /dist/modules/replay.js: -------------------------------------------------------------------------------- 1 | const Soap = require('../utils/soap'); 2 | 3 | class Replay { 4 | constructor() { 5 | this.soap = new Soap(); 6 | this.timeDiff = 0; 7 | this.serviceAddress = null; 8 | this.username = null; 9 | this.password = null; 10 | this.namespaceAttributes = ['xmlns:trp="http://www.onvif.org/ver10/replay/wsdl"']; 11 | } 12 | 13 | init(timeDiff, serviceAddress, username, password) { 14 | this.timeDiff = timeDiff; 15 | this.serviceAddress = serviceAddress; 16 | this.username = username; 17 | this.password = password; 18 | } 19 | 20 | createRequest(body) { 21 | const soapEnvelope = this.soap.createRequest({ 22 | body: body, 23 | xmlns: this.namespaceAttributes, 24 | diff: this.timeDiff, 25 | username: this.username, 26 | password: this.password 27 | }); 28 | return soapEnvelope; 29 | } 30 | 31 | getReplayUri() { 32 | return new Promise((resolve, reject) => { 33 | reject(new Error('Not implemented')); 34 | }); 35 | } 36 | 37 | setReplayConfiguration() { 38 | return new Promise((resolve, reject) => { 39 | reject(new Error('Not implemented')); 40 | }); 41 | } 42 | 43 | getReplayConfiguration() { 44 | return new Promise((resolve, reject) => { 45 | reject(new Error('Not implemented')); 46 | }); 47 | } 48 | 49 | getServiceCapabilities() { 50 | return new Promise((resolve, reject) => { 51 | reject(new Error('Not implemented')); 52 | }); 53 | } 54 | 55 | } 56 | 57 | module.exports = Replay; -------------------------------------------------------------------------------- /dist/onvif-nvt.js: -------------------------------------------------------------------------------- 1 | const Util = require('./utils/util'); 2 | 3 | class OnvifManager { 4 | constructor() { 5 | this.discovery = null; 6 | this.cameras = {}; 7 | } 8 | 9 | add(name) { 10 | switch (name) { 11 | case 'discovery': 12 | const Discovery = require('./modules/discovery'); 13 | 14 | this.discovery = new Discovery(); 15 | break; 16 | 17 | default: 18 | throw new Error(`The only acceptable module that can be added to OnvifManager is "discovery" - not "${name}".`); 19 | } 20 | } 21 | 22 | connect(address, port, username, password, servicePath, callback) { 23 | const promise = new Promise((resolve, reject) => { 24 | let errMsg = ''; 25 | 26 | if (errMsg = Util.isInvalidValue(address, 'string')) { 27 | reject(new Error('The "address" argument for connect is invalid: ' + errMsg)); 28 | return; 29 | } 30 | 31 | const cacheKey = `${address}:${port}`; 32 | const c = this.cameras[cacheKey]; 33 | 34 | if (c) { 35 | resolve(c); 36 | return; 37 | } 38 | 39 | port = port || 80; 40 | 41 | const Camera = require('./camera'); 42 | 43 | const camera = new Camera(); 44 | return camera.connect(address, port, username, password, servicePath).then(results => { 45 | this.cameras[cacheKey] = camera; 46 | resolve(camera); 47 | }).catch(error => { 48 | console.error(error); 49 | reject(error); 50 | }); 51 | }); 52 | 53 | if (Util.isValidCallback(callback)) { 54 | promise.then(results => { 55 | callback(null, results); 56 | }).catch(error => { 57 | callback(error); 58 | }); 59 | } else { 60 | return promise; 61 | } 62 | } 63 | 64 | } 65 | 66 | module.exports = new OnvifManager(); -------------------------------------------------------------------------------- /dist/utils/config.js: -------------------------------------------------------------------------------- 1 | const Util = require('./util'); 2 | 3 | let testCameraType = ''; 4 | 5 | function setDebugData(cameraType) { 6 | let errMsg = ''; 7 | 8 | if (errMsg = Util.isInvalidValue(cameraType, 'string')) { 9 | throw new Error('cameraType is invalid: ' + errMsg); 10 | } 11 | 12 | testCameraType = cameraType; 13 | } 14 | 15 | function reset() { 16 | testCameraType = ''; 17 | } 18 | 19 | function isTest() { 20 | if (testCameraType.length) { 21 | return true; 22 | } 23 | 24 | return false; 25 | } 26 | 27 | function getCameraType() { 28 | return testCameraType; 29 | } 30 | 31 | module.exports = { 32 | setDebugData, 33 | reset, 34 | isTest, 35 | getCameraType 36 | }; -------------------------------------------------------------------------------- /dist/utils/save-xml.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Fs = require('fs'); 4 | 5 | const Path = require('path'); 6 | 7 | const pd = require('pretty-data').pd; 8 | 9 | let writable = false; 10 | let path = Path.resolve(__dirname, '../../test/data/xml'); 11 | 12 | function saveXml(service, methodName, xml) { 13 | if (writable) { 14 | const prettyXml = pd.xml(xml); 15 | const folderPath = path + `/${service}`; 16 | 17 | if (!Fs.existsSync(folderPath)) { 18 | Fs.mkdirSync(folderPath); 19 | } 20 | 21 | const filePath = folderPath + `/${methodName}.xml`; 22 | Fs.writeFileSync(filePath, prettyXml); 23 | } 24 | } 25 | 26 | function setPath(folder) { 27 | path = folder; 28 | 29 | if (!Fs.existsSync(path)) { 30 | Fs.mkdirSync(path); 31 | } 32 | } 33 | 34 | function setWritable(value) { 35 | writable = value; 36 | } 37 | 38 | const functions = { 39 | setWritable, 40 | setPath, 41 | saveXml 42 | }; 43 | module.exports = functions; -------------------------------------------------------------------------------- /dist/utils/snapshot.js: -------------------------------------------------------------------------------- 1 | const Request = require('request'); 2 | 3 | const Util = require('./util'); 4 | 5 | class Snapshot { 6 | constructor() { 7 | this.snapshotUri = ''; 8 | this.username = ''; 9 | this.password = ''; 10 | } 11 | 12 | init(snapshotUri, username, password) { 13 | this.snapshotUri = snapshotUri; 14 | this.username = username; 15 | this.password = password; 16 | } 17 | 18 | getSnapshot(callback) { 19 | const promise = new Promise((resolve, reject) => { 20 | const params = { 21 | method: 'GET', 22 | uri: this.snapshotUri, 23 | gzip: true, 24 | encoding: 'binary' 25 | }; 26 | 27 | if (typeof this.username === 'string' && typeof this.password === 'string') { 28 | params.auth = { 29 | user: this.username, 30 | pass: this.password, 31 | sendImmediately: false 32 | }; 33 | } 34 | 35 | Request(params, (error, response, body) => { 36 | if (error) { 37 | reject(error); 38 | return; 39 | } 40 | 41 | if (response.statusCode === 200) { 42 | const mimeType = response.headers['content-type']; 43 | const data = { 44 | mimeType: mimeType, 45 | image: Buffer.from(body, 'binary') 46 | }; 47 | resolve(data); 48 | } else { 49 | reject(response); 50 | } 51 | }); 52 | }); 53 | 54 | if (Util.isValidCallback(callback)) { 55 | promise.then(results => { 56 | callback(null, results); 57 | }).catch(error => { 58 | callback(error); 59 | }); 60 | } else { 61 | return promise; 62 | } 63 | } 64 | 65 | } 66 | 67 | module.exports = Snapshot; -------------------------------------------------------------------------------- /docs/fonts/OpenSans-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/docs/fonts/OpenSans-Bold-webfont.eot -------------------------------------------------------------------------------- /docs/fonts/OpenSans-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/docs/fonts/OpenSans-Bold-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/OpenSans-BoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/docs/fonts/OpenSans-BoldItalic-webfont.eot -------------------------------------------------------------------------------- /docs/fonts/OpenSans-BoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/docs/fonts/OpenSans-BoldItalic-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/OpenSans-Italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/docs/fonts/OpenSans-Italic-webfont.eot -------------------------------------------------------------------------------- /docs/fonts/OpenSans-Italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/docs/fonts/OpenSans-Italic-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/OpenSans-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/docs/fonts/OpenSans-Light-webfont.eot -------------------------------------------------------------------------------- /docs/fonts/OpenSans-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/docs/fonts/OpenSans-Light-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/OpenSans-LightItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/docs/fonts/OpenSans-LightItalic-webfont.eot -------------------------------------------------------------------------------- /docs/fonts/OpenSans-LightItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/docs/fonts/OpenSans-LightItalic-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/OpenSans-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/docs/fonts/OpenSans-Regular-webfont.eot -------------------------------------------------------------------------------- /docs/fonts/OpenSans-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/docs/fonts/OpenSans-Regular-webfont.woff -------------------------------------------------------------------------------- /docs/scripts/linenumber.js: -------------------------------------------------------------------------------- 1 | /*global document */ 2 | (() => { 3 | const source = document.getElementsByClassName('prettyprint source linenums'); 4 | let i = 0; 5 | let lineNumber = 0; 6 | let lineId; 7 | let lines; 8 | let totalLines; 9 | let anchorHash; 10 | 11 | if (source && source[0]) { 12 | anchorHash = document.location.hash.substring(1); 13 | lines = source[0].getElementsByTagName('li'); 14 | totalLines = lines.length; 15 | 16 | for (; i < totalLines; i++) { 17 | lineNumber++; 18 | lineId = `line${lineNumber}`; 19 | lines[i].id = lineId; 20 | if (lineId === anchorHash) { 21 | lines[i].className += ' selected'; 22 | } 23 | } 24 | } 25 | })(); 26 | -------------------------------------------------------------------------------- /docs/scripts/prettify/lang-css.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n "]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com", 2 | /^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]); 3 | -------------------------------------------------------------------------------- /documents/2013_12_ONVIF_Profile_C_Specification_v1-0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/2013_12_ONVIF_Profile_C_Specification_v1-0.pdf -------------------------------------------------------------------------------- /documents/ONVIF-AccessControl-Service-Spec-v103.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-AccessControl-Service-Spec-v103.pdf -------------------------------------------------------------------------------- /documents/ONVIF-AccessRules-Service-Spec-v100.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-AccessRules-Service-Spec-v100.pdf -------------------------------------------------------------------------------- /documents/ONVIF-ActionEngine-Service-Spec-v100.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-ActionEngine-Service-Spec-v100.pdf -------------------------------------------------------------------------------- /documents/ONVIF-AdvancedSecurity-Service-Spec-v130.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-AdvancedSecurity-Service-Spec-v130.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Analytics-Service-Spec-v1712.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Analytics-Service-Spec-v1712.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Core-Specification-v1606.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Core-Specification-v1606.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Core-Specification-v1612.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Core-Specification-v1612.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Core-Specification-v1706.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Core-Specification-v1706.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Core-Specification-v1712.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Core-Specification-v1712.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Core-Specification-v230.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Core-Specification-v230.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Credential-Service-Spec-v100.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Credential-Service-Spec-v100.pdf -------------------------------------------------------------------------------- /documents/ONVIF-DeviceIo-Service-Spec-v1712.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-DeviceIo-Service-Spec-v1712.pdf -------------------------------------------------------------------------------- /documents/ONVIF-DeviceIo-Service-Spec-v221.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-DeviceIo-Service-Spec-v221.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Display-Service-Spec-v230.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Display-Service-Spec-v230.pdf -------------------------------------------------------------------------------- /documents/ONVIF-DoorControl-Service-Spec-v1712.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-DoorControl-Service-Spec-v1712.pdf -------------------------------------------------------------------------------- /documents/ONVIF-ExportFileFormat-Spec-v1706.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-ExportFileFormat-Spec-v1706.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Imaging-Service-Spec-v1706.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Imaging-Service-Spec-v1706.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Imaging-Service-Spec-v221.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Imaging-Service-Spec-v221.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Media-Service-Spec-v1706.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Media-Service-Spec-v1706.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Media2-Service-Spec-v1712.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Media2-Service-Spec-v1712.pdf -------------------------------------------------------------------------------- /documents/ONVIF-PTZ-Service-Spec-v1712.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-PTZ-Service-Spec-v1712.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Provisioning-Service-Spec-v1612.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Provisioning-Service-Spec-v1612.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Receiver-Service-Spec-v1706.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Receiver-Service-Spec-v1706.pdf -------------------------------------------------------------------------------- /documents/ONVIF-RecordingControl-Service-Spec-v1712.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-RecordingControl-Service-Spec-v1712.pdf -------------------------------------------------------------------------------- /documents/ONVIF-RecordingSearch-Service-Spec-v1706.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-RecordingSearch-Service-Spec-v1706.pdf -------------------------------------------------------------------------------- /documents/ONVIF-ReplayControl-Service-Spec-v1706.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-ReplayControl-Service-Spec-v1706.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Scheduler-Service-Spec-v100.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Scheduler-Service-Spec-v100.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Streaming-Spec-v1712.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Streaming-Spec-v1712.pdf -------------------------------------------------------------------------------- /documents/ONVIF-Thermal-Service-Spec-v1706.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-Thermal-Service-Spec-v1706.pdf -------------------------------------------------------------------------------- /documents/ONVIF-VideoAnalyticsDevice-Service-Spec-v211.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF-VideoAnalyticsDevice-Service-Spec-v211.pdf -------------------------------------------------------------------------------- /documents/ONVIF_Profile_-S_Specification_v1-1-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF_Profile_-S_Specification_v1-1-1.pdf -------------------------------------------------------------------------------- /documents/ONVIF_Profile_A_Specification_v1-0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF_Profile_A_Specification_v1-0.pdf -------------------------------------------------------------------------------- /documents/ONVIF_Profile_Feature_overview_v2-0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF_Profile_Feature_overview_v2-0.pdf -------------------------------------------------------------------------------- /documents/ONVIF_Profile_G_Specification_v1-0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF_Profile_G_Specification_v1-0.pdf -------------------------------------------------------------------------------- /documents/ONVIF_Profile_Q_Specification_v1-0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF_Profile_Q_Specification_v1-0.pdf -------------------------------------------------------------------------------- /documents/ONVIF_Profile_T_Specification_RC_v1-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF_Profile_T_Specification_RC_v1-3.pdf -------------------------------------------------------------------------------- /documents/ONVIF_WG-APG-Application_Programmers_Guide-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/ONVIF_WG-APG-Application_Programmers_Guide-1.pdf -------------------------------------------------------------------------------- /documents/Version_Handling-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/Version_Handling-1.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-AccessControl-Service-Spec-v103.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-AccessControl-Service-Spec-v103.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-AccessRules-Service-Spec-v100.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-AccessRules-Service-Spec-v100.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-ActionEngine-Service-Spec-v100.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-ActionEngine-Service-Spec-v100.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-AdvancedSecurity-Service-Spec-v130.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-AdvancedSecurity-Service-Spec-v130.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-Analytics-Service-Spec-v1712.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-Analytics-Service-Spec-v1712.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-Credential-Service-Spec-v1706.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-Credential-Service-Spec-v1706.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-DeviceIo-Service-Spec-v1712.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-DeviceIo-Service-Spec-v1712.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-Imaging-Service-Spec-v1706.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-Imaging-Service-Spec-v1706.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-Media-Service-Spec-v1706.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-Media-Service-Spec-v1706.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-Media2-Service-Spec-v1712.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-Media2-Service-Spec-v1712.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-PTZ-Service-Spec-v1712.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-PTZ-Service-Spec-v1712.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-Provisioning-Service-Spec-v1612.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-Provisioning-Service-Spec-v1612.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-Receiver-Service-Spec-v1706.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-Receiver-Service-Spec-v1706.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-RecordingControl-Service-Spec-v1712.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-RecordingControl-Service-Spec-v1712.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-RecordingSearch-Service-Spec-v1706.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-RecordingSearch-Service-Spec-v1706.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-ReplayControl-Service-Spec-v1706.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-ReplayControl-Service-Spec-v1706.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-Scheduler-Service-Spec-v100.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-Scheduler-Service-Spec-v100.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-Thermal-Service-Spec-v1706.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-Thermal-Service-Spec-v1706.pdf -------------------------------------------------------------------------------- /documents/service-specifications/ONVIF-VideoAnalyticsDevice-Service-Spec-v211.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hawkeye64/onvif-nvt/9026ce08d7b0c73bc519035492e98390b574580c/documents/service-specifications/ONVIF-VideoAnalyticsDevice-Service-Spec-v211.pdf -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | verbose: true, 3 | transform: { '.*': '/node_modules/babel-jest' }, 4 | collectCoverage: true 5 | } 6 | -------------------------------------------------------------------------------- /lib/utils/config.js: -------------------------------------------------------------------------------- 1 | const Util = require('./util') 2 | 3 | let testCameraType = '' 4 | 5 | function setDebugData (cameraType) { 6 | let errMsg = '' 7 | if ((errMsg = Util.isInvalidValue(cameraType, 'string'))) { 8 | throw new Error('cameraType is invalid: ' + errMsg) 9 | } 10 | 11 | testCameraType = cameraType 12 | } 13 | 14 | function reset () { 15 | testCameraType = '' 16 | } 17 | 18 | function isTest () { 19 | if (testCameraType.length) { 20 | return true 21 | } 22 | return false 23 | } 24 | 25 | function getCameraType () { 26 | return testCameraType 27 | } 28 | 29 | module.exports = { 30 | setDebugData, 31 | reset, 32 | isTest, 33 | getCameraType 34 | } 35 | -------------------------------------------------------------------------------- /lib/utils/save-xml.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const Fs = require('fs') 4 | const Path = require('path') 5 | const pd = require('pretty-data').pd 6 | let writable = false 7 | let path = Path.resolve(__dirname, '../../test/data/xml') 8 | 9 | function saveXml (service, methodName, xml) { 10 | if (writable) { 11 | const prettyXml = pd.xml(xml) 12 | const folderPath = path + `/${service}` 13 | // make sure folder exists 14 | if (!Fs.existsSync(folderPath)) { 15 | // make the folder 16 | Fs.mkdirSync(folderPath) 17 | } 18 | const filePath = folderPath + `/${methodName}.xml` 19 | Fs.writeFileSync(filePath, prettyXml) 20 | } 21 | } 22 | 23 | function setPath (folder) { 24 | path = folder 25 | // make sure it exists 26 | if (!Fs.existsSync(path)) { 27 | Fs.mkdirSync(path) 28 | } 29 | } 30 | 31 | function setWritable (value) { 32 | writable = value 33 | } 34 | 35 | const functions = { 36 | setWritable, 37 | setPath, 38 | saveXml 39 | } 40 | 41 | module.exports = functions 42 | -------------------------------------------------------------------------------- /run/config.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const Path = require('path') 4 | const saveXml = require('../lib/utils/save-xml') 5 | // Uncomment to save XML Requests and Resonses 6 | saveXml.setWritable(true) 7 | 8 | // for Axis 9 | // const address = '192.168.0.19' 10 | // const port = 80 11 | // const username = 'root' 12 | // const password = 'root' 13 | // const folder = 'axis' 14 | 15 | // for Hikvision (PTZ) 16 | const address = '10.10.1.60' 17 | const port = 80 18 | const username = 'admin' 19 | const password = '12345' 20 | const folder = 'hikvision' 21 | 22 | // for Hikvision (Fixed) 23 | // const address = '10.10.1.65' 24 | // const port = 80 25 | // const username = 'admin' 26 | // const password = '12345' 27 | // const folder = 'hikvision-fixed' 28 | 29 | // for Pelco (PTZ) 30 | // const address = '10.10.1.66' 31 | // const port = 80 32 | // const username = 'admin' 33 | // const password = 'admin' 34 | // const folder = 'pelco' 35 | 36 | // for TrendNET (Fixed) 37 | // const address = '10.10.1.67' 38 | // const port = 80 39 | // const username = 'admin' 40 | // const password = 'admin' 41 | // const folder = 'trendnet' 42 | 43 | // functional tests to run. Set to true to test the suite. 44 | const runDiscovery = false 45 | const runCore = false 46 | const runPtz = false 47 | const runMedia = false 48 | const runEvents = true 49 | const runAnalytics = false 50 | const runSnapshot = false 51 | const runBackup = false 52 | const runReboot = false 53 | 54 | saveXml.setPath(Path.resolve(__dirname, '../test/data/xml/' + folder)) 55 | 56 | module.exports = { 57 | address, 58 | port, 59 | username, 60 | password, 61 | folder, 62 | 63 | runDiscovery, 64 | runCore, 65 | runPtz, 66 | runMedia, 67 | runEvents, 68 | runAnalytics, 69 | runSnapshot, 70 | runReboot, 71 | runBackup 72 | } 73 | -------------------------------------------------------------------------------- /run/run.discovery.js: -------------------------------------------------------------------------------- 1 | const Config = require('./config') 2 | 3 | class RunDiscovery { 4 | constructor () { 5 | this.OnvifManager = require('../lib/onvif-nvt') 6 | this.apiErrors = [] 7 | } 8 | 9 | run () { 10 | return new Promise((resolve, reject) => { 11 | if (!Config.runDiscovery) { 12 | resolve({}) 13 | return 14 | } 15 | this.OnvifManager.add('discovery') 16 | this.OnvifManager.discovery.startProbe() 17 | .then(deviceList => { 18 | resolve(this.apiErrors) 19 | }) 20 | .catch(error => { 21 | this.apiErrors.push('Discovery::startProbe') 22 | console.error('Discovery::startProbe failed') 23 | console.error(error) 24 | resolve(this.apiErrors) 25 | }) 26 | }) 27 | } 28 | } 29 | 30 | module.exports = new RunDiscovery() 31 | -------------------------------------------------------------------------------- /run/run.reboot.js: -------------------------------------------------------------------------------- 1 | const Config = require('./config') 2 | 3 | class RunReboot { 4 | constructor () { 5 | this.OnvifManager = require('../lib/onvif-nvt') 6 | this.apiErrors = [] 7 | this.camera = null 8 | } 9 | 10 | run () { 11 | return new Promise((resolve, reject) => { 12 | if (!Config.runReboot) { 13 | resolve([]) 14 | return 15 | } 16 | this.OnvifManager.connect(Config.address, Config.port, Config.username, Config.password) 17 | .then(results => { 18 | this.camera = results 19 | 20 | // let the tests begin 21 | return this.SystemReboot().then(() => { 22 | resolve(this.apiErrors) 23 | }) 24 | }) 25 | .catch(error => { 26 | console.error(error) 27 | }) 28 | }) 29 | } // run() 30 | 31 | /* ------------------------------------------------- 32 | NOTE: All functional test should resolve(error) 33 | instead of calling reject(error) 34 | ------------------------------------------------- */ 35 | 36 | SystemReboot () { 37 | return new Promise((resolve, reject) => { 38 | this.camera.core.systemReboot() 39 | .then(results => { 40 | console.log('SystemReboot successful') 41 | resolve(results) 42 | }) 43 | .catch(error => { 44 | this.apiErrors.push('SystemReboot') 45 | console.error('SystemReboot failed') 46 | console.error(error.message) 47 | resolve(error) 48 | }) 49 | }) 50 | } 51 | } 52 | 53 | module.exports = new RunReboot() 54 | -------------------------------------------------------------------------------- /run/run.snapshot.js: -------------------------------------------------------------------------------- 1 | const Config = require('./config') 2 | 3 | class RunSnapshot { 4 | constructor () { 5 | this.OnvifManager = require('../lib/onvif-nvt') 6 | this.apiErrors = [] 7 | this.camera = null 8 | 9 | this.profileToken = '' 10 | } 11 | 12 | run () { 13 | return new Promise((resolve, reject) => { 14 | if (!Config.runSnapshot) { 15 | resolve([]) 16 | return 17 | } 18 | this.OnvifManager.connect(Config.address, Config.port, Config.username, Config.password) 19 | .then(results => { 20 | this.camera = results 21 | 22 | // verify this camera supports Media 23 | if (!this.camera.media) { 24 | resolve([]) 25 | return 26 | } 27 | 28 | // let the tests begin 29 | return this.GetSnapshot().then(() => { 30 | resolve(this.apiErrors) 31 | }) 32 | }) 33 | .catch(error => { 34 | console.error(error) 35 | }) 36 | }) 37 | } // run() 38 | 39 | /* ------------------------------------------------- 40 | NOTE: All functional test should resolve(error) 41 | instead of calling reject(error) 42 | ------------------------------------------------- */ 43 | 44 | GetSnapshot () { 45 | return new Promise((resolve, reject) => { 46 | this.camera.add('snapshot') 47 | this.camera.snapshot.getSnapshot() 48 | .then(results => { 49 | console.log('GetSnapshot successful') 50 | resolve(results) 51 | }) 52 | .catch(error => { 53 | this.apiErrors.push('GetSnapshot') 54 | console.error('GetSnapshot failed') 55 | console.error(error.message) 56 | resolve(error) 57 | }) 58 | }) 59 | } 60 | } 61 | 62 | module.exports = new RunSnapshot() 63 | -------------------------------------------------------------------------------- /test/config.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | // axis 4 | // module.exports = { 5 | // cameraType: 'axis', 6 | // address: '192.168.0.19', 7 | // port: 80, 8 | // user: 'root', 9 | // pass: 'root' 10 | // } 11 | 12 | // hikvision 13 | module.exports = { 14 | cameraType: 'hikvision', 15 | address: '10.10.1.60', 16 | port: 80, 17 | user: 'admin', 18 | pass: '12345' 19 | } 20 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/GetAccessPolicy.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T15:57:13.297Z 19 | 2018-02-24T15:57:23.297Z 20 | 21 | 22 | root 23 | ZkxRmFQMT5FAhUOS+T5Elt8TxQ0= 24 | uIbI4nBs1j/9BpMnXoo3TA== 25 | 2018-02-24T15:57:13.297Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/GetCertificates.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T15:57:13.462Z 19 | 2018-02-24T15:57:23.462Z 20 | 21 | 22 | root 23 | ZJAjI8CA2iRpbYyV1mj36LNggtE= 24 | i6KmOdv81dQtvV/oGUvNtg== 25 | 2018-02-24T15:57:13.462Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/GetDNS.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T15:57:10.332Z 19 | 2018-02-24T15:57:20.332Z 20 | 21 | 22 | root 23 | wJRbg9uUXB6q2AozdtcAtzC0tFc= 24 | gvWuYtvfWCqXePmjBqJfHQ== 25 | 2018-02-24T15:57:10.332Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/GetDPAddresses.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T15:57:13.236Z 19 | 2018-02-24T15:57:23.236Z 20 | 21 | 22 | root 23 | FgQRQ4Vo5+KRyrKP+sAtHZB9Dn4= 24 | I0IS7MKfoR/Mk2E7w7SKpg== 25 | 2018-02-24T15:57:13.236Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/GetDynamicDNS.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T15:57:10.740Z 19 | 2018-02-24T15:57:20.740Z 20 | 21 | 22 | root 23 | SKEnyol3QGiLMyRZTUORoQfnSBQ= 24 | 1Lckio0gUEr1Q4+9A001XA== 25 | 2018-02-24T15:57:10.740Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/GetGeoLocation.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T15:57:13.075Z 19 | 2018-02-24T15:57:23.075Z 20 | 21 | 22 | root 23 | rUXTUK3YTuAXpSNNgradxgyaiHg= 24 | MUhEszJF6nIweX+59hRBqg== 25 | 2018-02-24T15:57:13.075Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/GetHostname.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T15:57:10.113Z 19 | 2018-02-24T15:57:20.113Z 20 | 21 | 22 | root 23 | BXiuwl+wNsQzgeJog1MgdV8Jh/s= 24 | /dwHWcTYXsbwSjd97C4m6g== 25 | 2018-02-24T15:57:10.113Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/GetNTP.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T15:57:10.592Z 19 | 2018-02-24T15:57:20.592Z 20 | 21 | 22 | root 23 | G7WEJXrKHWMBV3mf8Vb0pnlY24k= 24 | 0ShBtaYov+ySmHLFPijrSg== 25 | 2018-02-24T15:57:10.592Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/GetRelayOutputs.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T15:57:13.983Z 19 | 2018-02-24T15:57:23.983Z 20 | 21 | 22 | root 23 | uEI1/wLKaeV/E/z1tR4bPqwsMfE= 24 | Onb67zjxfq0E9HYcwA74Ug== 25 | 2018-02-24T15:57:13.983Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/GetScopes.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T23:10:00.037Z 19 | 2018-02-27T23:10:10.037Z 20 | 21 | 22 | root 23 | r1yO904+0bJw60fMHYmn5j52j2U= 24 | 7RkZslWoxUKv0/T59zNc6w== 25 | 2018-02-27T23:10:00.037Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/GetSystemBackup.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T15:57:12.592Z 19 | 2018-02-24T15:57:22.592Z 20 | 21 | 22 | root 23 | 2Zwx7yYNSYvxfy4m2JyRPMormN0= 24 | J8cQFGY2uGwTrwkOQD4m0g== 25 | 2018-02-24T15:57:12.592Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/GetSystemUris.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T15:57:12.548Z 19 | 2018-02-24T15:57:22.548Z 20 | 21 | 22 | root 23 | JMvl/l7WF5exzyyJ9ty9IK4iBIU= 24 | x5QcZo1CdFTZbKRjfxfLkA== 25 | 2018-02-24T15:57:12.548Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/GetUsers.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T15:57:13.345Z 19 | 2018-02-24T15:57:23.345Z 20 | 21 | 22 | root 23 | f0M/n5X/2+b1CsYRKFSeaaHCwac= 24 | UqsVpi/g8jTAVa4UBmfgrw== 25 | 2018-02-24T15:57:13.345Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/GetWsdlUrl.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T15:57:09.928Z 19 | 2018-02-24T15:57:19.928Z 20 | 21 | 22 | root 23 | JFytNFpCkg+Dz1FwNLyfTC2nDko= 24 | ctRKv0+4anLlonXOaQf6eQ== 25 | 2018-02-24T15:57:09.928Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/SetDNS.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T15:57:10.533Z 19 | 2018-02-24T15:57:20.533Z 20 | 21 | 22 | root 23 | jWXFhMWF7IefN0e8gg3Wlqh6buQ= 24 | ENAiP7Mf+eqCa1vFZrtQXA== 25 | 2018-02-24T15:57:10.533Z 27 | 28 | 29 | 30 | 31 | 32 | 1 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/SetNTP.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T15:57:10.704Z 19 | 2018-02-24T15:57:20.704Z 20 | 21 | 22 | root 23 | 1sRcKaufjoEQOKyUuenV0Bmzx44= 24 | bk8tan1mhwiMBVE2utLt8Q== 25 | 2018-02-24T15:57:10.704Z 27 | 28 | 29 | 30 | 31 | 32 | 1 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/core/SystemReboot.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T16:03:56.397Z 19 | 2018-02-24T16:04:06.397Z 20 | 21 | 22 | root 23 | 9nWjCZVSfRHZyGlj/DB7j13U5z4= 24 | 9+9XdyAn/7Vjowd4lMSfgQ== 25 | 2018-02-24T16:03:56.397Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/media/GetAudioOutputs.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-25T16:58:09.680Z 19 | 2018-02-25T16:58:19.680Z 20 | 21 | 22 | root 23 | r+nDqCMx54AyiUvRD6+8ppTMlDw= 24 | VLD5RwiCNv8haSNaOffPQQ== 25 | 2018-02-25T16:58:09.680Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/media/GetAudioSources.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-25T16:58:09.406Z 19 | 2018-02-25T16:58:19.406Z 20 | 21 | 22 | root 23 | XtYDS9dV6yXNANOboZsKrFes+k8= 24 | pnBg6FywApguHcD3586b6w== 25 | 2018-02-25T16:58:09.406Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/media/GetOSDs.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-25T16:58:09.915Z 19 | 2018-02-25T16:58:19.915Z 20 | 21 | 22 | root 23 | LIdg+/8N+BuKBrQqWEB+QrwLUdQ= 24 | ECXVWJiNE5APCtKRQz02Jw== 25 | 2018-02-25T16:58:09.915Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/media/GetProfiles.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T23:09:59.485Z 19 | 2018-02-27T23:10:09.485Z 20 | 21 | 22 | root 23 | dsHc2fjCLUUybio9aUap2lyJn2w= 24 | PRF1YgxpJCQfE6MwGzpcZQ== 25 | 2018-02-27T23:09:59.485Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/media/GetVideoSources.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-25T16:58:09.262Z 19 | 2018-02-25T16:58:19.262Z 20 | 21 | 22 | root 23 | NY4oBr3NBeoK4wcPt7XIP1frAok= 24 | errk3K18nLALnvbcOFGBvQ== 25 | 2018-02-25T16:58:09.262Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/axis/ptz/GetNodes.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T00:18:42.600Z 19 | 2018-02-27T00:18:52.600Z 20 | 21 | 22 | root 23 | YDfiKbbUWIfrVIr/bCzb040TEd4= 24 | rE1mR2WlOR2kiyBxN3ndeQ== 25 | 2018-02-27T00:18:42.600Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/hikvision-fixed/core/GetDNS.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:54:18.834Z 19 | 2018-02-27T14:54:28.834Z 20 | 21 | 22 | admin 23 | GIZn+QMRv+yUakAHsXD1Guym6Jk= 24 | WtZox2xo3tf3Rmu8VkaFaA== 25 | 2018-02-27T14:54:18.834Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/hikvision-fixed/core/GetNTP.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:54:18.941Z 19 | 2018-02-27T14:54:28.941Z 20 | 21 | 22 | admin 23 | jBMOYovJvr6bWiBS5mdoS6GE6WA= 24 | yvW69HmY/rotF3z6PXWqbA== 25 | 2018-02-27T14:54:18.941Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/hikvision-fixed/core/GetUsers.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:54:21.177Z 19 | 2018-02-27T14:54:31.177Z 20 | 21 | 22 | admin 23 | 573YgvWDb2RkIryUL6hEVyBas4M= 24 | 6wpJRCdhId43t5131pr5gQ== 25 | 2018-02-27T14:54:21.177Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/hikvision-fixed/core/SetHostname.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /test/data/xml/hikvision-fixed/media/GetOSDs.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:54:21.274Z 19 | 2018-02-27T14:54:31.274Z 20 | 21 | 22 | admin 23 | 1lHFE5+1Z3Dvi7a3IEBKK0OmpoY= 24 | f8228UHVBxXJ3J7LLNsbqQ== 25 | 2018-02-27T14:54:21.274Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/hikvision/core/GetDNS.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:48:04.197Z 19 | 2018-02-27T14:48:14.197Z 20 | 21 | 22 | admin 23 | XUp7Dg6illYzVqwFwZNLjS14ink= 24 | IqcztWf000/Ppj4yZLNrrg== 25 | 2018-02-27T14:48:04.197Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/hikvision/core/GetHostname.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:48:04.138Z 19 | 2018-02-27T14:48:14.138Z 20 | 21 | 22 | admin 23 | /BKlXLuLhHVRWQ6TlC/EqNP0OLQ= 24 | nlNoHQotsa5wKgyMAJTT+g== 25 | 2018-02-27T14:48:04.138Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/hikvision/core/GetNTP.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:48:04.249Z 19 | 2018-02-27T14:48:14.249Z 20 | 21 | 22 | admin 23 | TyuHVWv+DFBw9FfOFbavoJDByKI= 24 | aYKZC7kcxmrK7qUnIDVJ4w== 25 | 2018-02-27T14:48:04.249Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/hikvision/core/GetScopes.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T18:28:01.721Z 19 | 2018-02-27T18:28:11.721Z 20 | 21 | 22 | admin 23 | 6ZeCVqfBHaOXp6eTBBWNLcckV0s= 24 | zV0hYUZWAsvshRd3joHmOA== 25 | 2018-02-27T18:28:01.721Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/hikvision/core/GetUsers.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:53:06.017Z 19 | 2018-02-27T14:53:16.017Z 20 | 21 | 22 | admin 23 | L6h96dszBB62jlPYQgSZ+dImW14= 24 | 0MM8YwU8Tbx3fBZiS9UXYQ== 25 | 2018-02-27T14:53:06.017Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/hikvision/core/GetWsdlUrl.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:48:04.021Z 19 | 2018-02-27T14:48:14.021Z 20 | 21 | 22 | admin 23 | Xt7jOjLe+NP13OilPCI28ewzN5A= 24 | GSf/T1zPXf7GQoq3a+OZpA== 25 | 2018-02-27T14:48:04.021Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/hikvision/core/SetHostname.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /test/data/xml/hikvision/core/SystemReboot.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-24T16:24:49.616Z 19 | 2018-02-24T16:24:59.616Z 20 | 21 | 22 | admin 23 | m2UK/WpB6BexJT9M45Nm14NhDXI= 24 | ujsOE3xUzVnzqXDsJXqBGA== 25 | 2018-02-24T16:24:49.616Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/hikvision/media/GetOSDs.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:53:12.878Z 19 | 2018-02-27T14:53:22.878Z 20 | 21 | 22 | admin 23 | OSgxU+J2rgwyQ6dn53FJcQkcTrY= 24 | izfDs9at7Li5+R0PIJoopQ== 25 | 2018-02-27T14:53:12.878Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/hikvision/ptz/GetNodes.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:53:06.174Z 19 | 2018-02-27T14:53:16.174Z 20 | 21 | 22 | admin 23 | 1j3aE7uF8C/W/F05incKy1bGkDE= 24 | mpKNIIJSNtDxEOo498EEWg== 25 | 2018-02-27T14:53:06.174Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetAccessPolicy.Error.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | SOAP-ENV:Receiver 18 | 19 | ter:ActionNotSupported 20 | 21 | 22 | 23 | Optional Action Not Implemented 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetCACertificates.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetCertificates.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetCertificatesStatus.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetClientCertificateMode.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | false 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetDNS.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:56:28.582Z 19 | 2018-02-27T14:56:38.582Z 20 | 21 | 22 | admin 23 | OiXx5/BrF2Id9Obp0R3RJP8P75E= 24 | zDY8WIlND3NgzdstI9+K4A== 25 | 2018-02-27T14:56:28.582Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetDNS.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | false 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetDPAddresses.Error.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | SOAP-ENV:Receiver 18 | 19 | ter:ActionNotSupported 20 | 21 | 22 | 23 | Optional Action Not Implemented 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetDPAddresses.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:57:08.067Z 19 | 2018-02-27T14:57:18.067Z 20 | 21 | 22 | admin 23 | 8JSw/J/o1gqAAkt86CWQnyWe5Z8= 24 | IABLV+XxPVicsbfe0H1NCA== 25 | 2018-02-27T14:57:08.067Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetDeviceInformation.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | Pelco 17 | D6230L 18 | 2.9.0.4.9340-A0.0 19 | J250117 20 | 00:04:7d:0e:b8:5c 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetDiscoveryMode.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | Discoverable 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetDot11Capabilities.Error.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | SOAP-ENV:Receiver 18 | 19 | ter:ActionNotSupported 20 | 21 | 22 | 23 | Optional Action Not Implemented 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetDot11Status.Error.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | SOAP-ENV:Receiver 18 | 19 | ter:ActionNotSupported 20 | 21 | 22 | 23 | Optional Action Not Implemented 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetDot1XConfigurations.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetDynamicDNS.Error.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | SOAP-ENV:Receiver 18 | 19 | ter:ActionNotSupported 20 | 21 | 22 | 23 | Optional Action Not Implemented 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetDynamicDNS.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:56:29.227Z 19 | 2018-02-27T14:56:39.227Z 20 | 21 | 22 | admin 23 | 5JtAifdUp4Jph1kmHBYxGAHC9bk= 24 | zmtcsS0XjILXIx8jbx9WdQ== 25 | 2018-02-27T14:56:29.227Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetEndpointReference.Error.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | SOAP-ENV:Receiver 18 | 19 | ter:ActionNotSupported 20 | 21 | 22 | 23 | Optional Action Not Implemented 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetGeoLocation.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:57:06.714Z 19 | 2018-02-27T14:57:16.714Z 20 | 21 | 22 | admin 23 | 43KjJt0QRHs49ws4+wEF2eG459A= 24 | G+SAPd7tZ6GGHi5oniDyGA== 25 | 2018-02-27T14:57:06.714Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetHostname.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:56:28.476Z 19 | 2018-02-27T14:56:38.476Z 20 | 21 | 22 | admin 23 | FINU9Lpf+q6pOGHZ+bDxiKsznxA= 24 | JISzlqHYqRKeU78VaqMG5A== 25 | 2018-02-27T14:56:28.476Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetHostname.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | false 18 | localhost 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetIPAddressFilter.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | Deny 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetNTP.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:56:29.041Z 19 | 2018-02-27T14:56:39.041Z 20 | 21 | 22 | admin 23 | JkfaTAVEwf0ide9MTOagSA39Ib8= 24 | XxyLB7MccBfG3CCB5nDaOA== 25 | 2018-02-27T14:56:29.041Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetNTP.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | false 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetNetworkDefaultGateway.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | 10.10.1.1 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetNetworkProtocols.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | HTTP 18 | true 19 | 80 20 | 21 | 22 | HTTPS 23 | false 24 | 443 25 | 26 | 27 | RTSP 28 | true 29 | 554 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetRelayOutputs.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | 18 | Monostable 19 | PT0S 20 | open 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetRemoteDiscoveryMode.Error.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | SOAP-ENV:Receiver 18 | 19 | ter:ActionNotSupported 20 | 21 | 22 | 23 | Optional Action Not Implemented 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetScopes.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T18:10:12.341Z 19 | 2018-02-27T18:10:22.341Z 20 | 21 | 22 | admin 23 | lqwfj4xYWNQoePBqd/gQrqh0YFI= 24 | ejMYZGA5OzviFSLQyMMKVA== 25 | 2018-02-27T18:10:12.341Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetServiceCapabilities.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetSystemDateAndTime.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | Manual 18 | false 19 | 20 | MST7MDT,M3.2.0,M11.1.0 21 | 22 | 23 | 24 | 18 25 | 10 26 | 11 27 | 28 | 29 | 2018 30 | 2 31 | 27 32 | 33 | 34 | 35 | :America/Edmonton 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetSystemUris.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:56:32.011Z 19 | 2018-02-27T14:56:42.011Z 20 | 21 | 22 | admin 23 | UkTbVhmpch9WtDuvY01F+2nsFvI= 24 | hLoq7tRu4SJg2aeZR0xfwQ== 25 | 2018-02-27T14:56:32.011Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetSystemUris.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | 18 | System 19 | http://10.10.1.66/onvif/systemlog/get 20 | 21 | 22 | http://10.10.1.66/onvif/supportlog/get 23 | http://10.10.1.66/onvif/backup/get 24 | 25 | 26 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetUsers.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:57:08.203Z 19 | 2018-02-27T14:57:18.203Z 20 | 21 | 22 | admin 23 | zMfIBWxA4ulkSt6aBG6yA85H/EE= 24 | Ahn7YLpnxs76vuNTNGfFig== 25 | 2018-02-27T14:57:08.203Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetUsers.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetWsdlUrl.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:56:28.349Z 19 | 2018-02-27T14:56:38.349Z 20 | 21 | 22 | admin 23 | X7vTvMwTIC46GyZVB+RiLv6oKSI= 24 | Ca7vTjBwNRkHCvDjuemkqw== 25 | 2018-02-27T14:56:28.349Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetWsdlUrl.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | http://www.onvif.org/ver10/device/wsdl 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/GetZeroConfiguration.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | eth0 18 | true 19 | 169.254.157.249 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/ScanAvailableDot11Networks.Error.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | SOAP-ENV:Receiver 18 | 19 | ter:ActionNotSupported 20 | 21 | 22 | 23 | Optional Action Not Implemented 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/SetDNS.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/SetDynamicDNS.Error.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | SOAP-ENV:Receiver 18 | 19 | ter:ActionNotSupported 20 | 21 | 22 | 23 | Optional Action Not Implemented 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/SetHostname.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/SetHostnameFromDHCP.Error.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | SOAP-ENV:Receiver 18 | 19 | ter:ActionNotSupported 20 | 21 | 22 | 23 | Optional Action Not Implemented 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/SetNTP.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/SystemReboot.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 1970-01-02T16:47:29.757Z 19 | 1970-01-02T16:47:39.757Z 20 | 21 | 22 | admin 23 | RJyWE67Ku3aexWQ1MsPXsvOgbmg= 24 | TnMOhHBIz5kYEkMbnLnOjA== 25 | 1970-01-02T16:47:29.757Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/pelco/core/SystemReboot.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | Rebooting now 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/data/xml/pelco/events/CreatePullPointSubscription.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | http://www.w3.org/2005/08/addressing/anonymous 17 | 18 | 19 | 20 | 21 | http://10.10.1.66/onvif/eventing_service?id=urn:uuid:90c6d153-d40a-ce00-565f-26bed81b5b83 22 | 23 | urn:uuid:90c6d153-d40a-ce00-565f-26bed81b5b83 25 | 26 | 27 | 28 | 2018-02-27T18:27:56.067761Z 29 | 2018-02-27T18:29:26.067761Z 30 | 31 | 32 | -------------------------------------------------------------------------------- /test/data/xml/pelco/events/GetServiceCapabilities.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | http://www.w3.org/2005/08/addressing/anonymous 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/data/xml/pelco/events/SetSynchronizationPoint.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | http://www.w3.org/2005/08/addressing/anonymous 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /test/data/xml/pelco/media/GetAudioDecoderConfigurations.Error.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | SOAP-ENV:Receiver 18 | 19 | ter:ActionNotSupported 20 | 21 | ter:AudioDecodingNotSupported 22 | 23 | 24 | 25 | 26 | Audio Decoding is not supported. 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /test/data/xml/pelco/media/GetAudioEncoderConfigurations.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | audio 18 | 0 19 | G711 20 | 64 21 | 8 22 | 23 | 24 | IPv4 25 | 239.10.1.66 26 | 27 | 6880 28 | 10 29 | false 30 | 31 | PT15M 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /test/data/xml/pelco/media/GetAudioOutputConfigurations.Error.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | SOAP-ENV:Receiver 18 | 19 | ter:ActionNotSupported 20 | 21 | ter:AudioOutputNotSupported 22 | 23 | 24 | 25 | 26 | Audio Output is not supported. 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /test/data/xml/pelco/media/GetAudioOutputs.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/media/GetAudioSourceConfigurations.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | Camera 18 | 0 19 | 0 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/data/xml/pelco/media/GetAudioSources.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | 1 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /test/data/xml/pelco/media/GetMetadataConfigurations.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/media/GetOSDs.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:57:15.953Z 19 | 2018-02-27T14:57:25.953Z 20 | 21 | 22 | admin 23 | 02rum+gCFDyKTV53q6fZnliziYU= 24 | XNUsxZ+bUfLefoxt/rq8fQ== 25 | 2018-02-27T14:57:15.953Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/pelco/media/GetProfiles.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T18:10:12.040Z 19 | 2018-02-27T18:10:22.040Z 20 | 21 | 22 | admin 23 | vchUxuqT2r5x+hn0TswuStkMjXE= 24 | 1LMC7v1jSFGlj/eZ6w140g== 25 | 2018-02-27T18:10:12.040Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/pelco/media/GetSnapshotUri.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | http://10.10.1.66/jpeg 18 | false 19 | false 20 | PT0S 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /test/data/xml/pelco/media/GetStreamUri.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | rtsp://10.10.1.66/stream2_v 18 | false 19 | false 20 | PT900S 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /test/data/xml/pelco/media/GetVideoSourceConfigurations.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | Camera 18 | 2 19 | 0 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /test/data/xml/pelco/media/GetVideoSources.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | 60 18 | 19 | 1920 20 | 1080 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /test/data/xml/pelco/ptz/AbsoluteMove.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/ptz/ContinuousMove.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/ptz/GetCompatibleConfigurations.Error.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | SOAP-ENV:Receiver 18 | 19 | ter:ActionNotSupported 20 | 21 | 22 | 23 | Optional Action Not Implemented 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/data/xml/pelco/ptz/GetNodes.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:57:08.708Z 19 | 2018-02-27T14:57:18.708Z 20 | 21 | 22 | admin 23 | phqJIqaqRFXr5Tu0/8sFCt2DaeQ= 24 | 9aMCdn26V8vbejPnWHlGlQ== 25 | 2018-02-27T14:57:08.708Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/pelco/ptz/GetStatus.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | IDLE 23 | IDLE 24 | 25 | 2018-02-27T14:57:08.890590Z 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /test/data/xml/pelco/ptz/GotoHomePosition.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/ptz/GotoPreset.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/ptz/RelativeMove.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/ptz/RemovePreset.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/ptz/SetHomePosition.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/pelco/ptz/SetPreset.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 76240dd2-26dd-48f1-bacf-a858550a14cc 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/data/xml/pelco/ptz/Stop.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | http://www.w3.org/2005/08/addressing/anonymous 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/data/xml/trendnet/core/GetDNS.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:58:32.902Z 19 | 2018-02-27T14:58:42.902Z 20 | 21 | 22 | admin 23 | N4RLJXdqhN3/H6bLB6vSo4UlClc= 24 | j5NlhcoLApIoKwlyy3CyyQ== 25 | 2018-02-27T14:58:32.902Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/trendnet/core/GetHostname.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:58:32.790Z 19 | 2018-02-27T14:58:42.790Z 20 | 21 | 22 | admin 23 | QthCn96hCRm4NKlwgmgvIQ+nEaM= 24 | LmISYa41iz2jQpdPo65p4w== 25 | 2018-02-27T14:58:32.790Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/trendnet/core/GetNTP.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:58:33.524Z 19 | 2018-02-27T14:58:43.524Z 20 | 21 | 22 | admin 23 | 1+OJcZnJdhc4xqip2qHdJ7nwz2Y= 24 | 7mvwN9fp39mwEp5gkUUonw== 25 | 2018-02-27T14:58:33.524Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/trendnet/core/GetUsers.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:58:37.087Z 19 | 2018-02-27T14:58:47.087Z 20 | 21 | 22 | admin 23 | o1p/dxlYLMphFTwMwjQWDFpgw2c= 24 | zDH0YxA3CV0NJjQe0XOifw== 25 | 2018-02-27T14:58:37.087Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/trendnet/core/GetWsdlUrl.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:58:32.600Z 19 | 2018-02-27T14:58:42.600Z 20 | 21 | 22 | admin 23 | zZeApPv78xm1W6bqLAyFSJuvVoY= 24 | Hrikg3szbW2rxT2c0dAiyw== 25 | 2018-02-27T14:58:32.600Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/data/xml/trendnet/core/SetHostname.Response.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /test/data/xml/trendnet/media/GetOSDs.Request.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | http://www.w3.org/2005/08/addressing/anonymous 15 | 16 | 17 | 18 | 2018-02-27T14:58:38.455Z 19 | 2018-02-27T14:58:48.455Z 20 | 21 | 22 | admin 23 | ehJFcqdqIf9/1jILn0x+U0b7WcE= 24 | DFL2lwegWnMBJSVR+ZiiiQ== 25 | 2018-02-27T14:58:38.455Z 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/discovery.test.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const Config = require('../lib/utils/config') 4 | const TestConfig = require('./config') 5 | 6 | describe('Discovery', () => { 7 | Config.setDebugData(TestConfig.cameraType) 8 | 9 | test('add discovery', (done) => { 10 | const OnvifManager = require('../lib/onvif-nvt') 11 | expect(OnvifManager.discovery).toBeNull() 12 | OnvifManager.add('discovery') 13 | expect(OnvifManager.discovery).not.toBeNull() 14 | done() 15 | }) 16 | 17 | test('startProbe-stopProbe', (done) => { 18 | const OnvifManager = require('../lib/onvif-nvt') 19 | OnvifManager.add('discovery') 20 | 21 | OnvifManager.discovery.startProbe() 22 | .then(results => { 23 | console.log(results) 24 | }) 25 | .catch(error => { 26 | console.error(error) 27 | }) 28 | 29 | setTimeout(() => { 30 | OnvifManager.discovery.stopProbe() 31 | .then(results => { 32 | // console.log(results) 33 | expect(results).toBeUndefined() 34 | done() 35 | }) 36 | .catch(error => { 37 | console.error(error) 38 | done() 39 | }) 40 | }, 1000) 41 | }) 42 | }) 43 | -------------------------------------------------------------------------------- /test/onvifManager.test.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const Config = require('../lib/utils/config') 4 | const TestConfig = require('./config') 5 | 6 | describe('OnvifManager', () => { 7 | // Discovery 8 | test('OnvifManager::constructor()', () => { 9 | const OnvifManager = require('../lib/onvif-nvt') 10 | expect(OnvifManager.discovery).toBeNull() 11 | }) 12 | 13 | // Discovery 14 | test('OnvifManager::add("discovery")', () => { 15 | const OnvifManager = require('../lib/onvif-nvt') 16 | OnvifManager.add('discovery') 17 | expect(OnvifManager.discovery).not.toBeNull() 18 | }) 19 | 20 | // Connect 21 | test('OnvifManager::connect()', () => { 22 | const OnvifManager = require('../lib/onvif-nvt') 23 | Config.setDebugData(TestConfig.cameraType) 24 | return OnvifManager.connect(TestConfig.address, TestConfig.port, TestConfig.user, TestConfig.pass) 25 | .then(results => { 26 | const Camera = results 27 | expect(Camera.deviceInformation).toBeTruthy() 28 | expect(Camera.profileList.length).toBeGreaterThanOrEqual(1) 29 | expect(Camera.defaultProfile).toBeTruthy() 30 | }) 31 | .catch(error => { 32 | console.error(error) 33 | }) 34 | }) 35 | 36 | // test('OnvifManager throw on add("not-a-module")', () => { 37 | // const OnvifManager = require('../lib/onvif-nvt') 38 | // expect(OnvifManager.add('not-a-module')).toThrow() 39 | // }) 40 | }) 41 | --------------------------------------------------------------------------------