1 Introduction
1.1 How to Use This Document
1.2 Conventions and Labels
1.3 Example Application Overview
1.4 Language Definition
2 References
3 Abbreviations
4 Discovery
4.1 Prerequisites
4.2 Targeted Services and Technologies
4.3 ONVIF::Discovery
4.3.1 ONVIF::DiscoverySendProbe
4.3.2 ONVIF::DiscoveryReadResponse
5 Initial Setup and Administration
5.1 First Actions After Discovery
5.1.1 Prerequisites
5.1.2 Targeted Services and Technologies
5.1.3 ONVIF::ProcessMatch
5.1.4 ONVIF::UpdateCapabilities
5.1.5 ONVIF::CheckXAddrsAndGetTime
5.1.6 ONVIF::ParseSystemDateAndTime
5.2 Getting the Network Interface Configuration
5.2.1 Prerequisites
5.2.2 Targeted Services and Technologies
5.2.3 ONVIF::GetNetworkInterfaceConfiguration
5.3 Setting Network Interface Configuration
5.3.1 Prerequisites
5.3.2 Targeted Services and Technologies
5.3.3 ONVIF::SetNetworkInterfaceConfiguration
5.4 Time Synchronization Including NTP Configuration (Set Manually)
5.4.1 Prerequisites
5.4.2 Targeted Services and Technologies
5.4.3 ONVIF::TimeSynchronizationWithNTPServerSetByManual
5.5 Time Synchronization Including NTP Configuration (Set by DHCP)
5.5.1 Prerequisites
5.5.2 Targeted Services and Technologies
5.5.3 ONVIF::TimeSynchronizationWithNTPServerSetByDHCP
5.6 Backup System Configuration Files from a Device
5.6.1 Prerequisites
5.6.2 Targeted Services and Technologies
5.6.3 ONVIF::GetSystemBackupRequest
5.7 Restore System Configuration Files to a Device
5.7.1 Prerequisites
5.7.2 Targeted Services and Technologies
5.7.3 ONVIF::RestoreSystem
5.8 Start System Restore via HTTP Post
5.8.1 Prerequisites
5.8.2 Targeted Services and Technologies
5.8.3 ONVIF::StartSystemRestore
6 Security
6.1 Authentication
6.1.1 Authenticating by WS-UsernameToken
6.1.1.1 Prerequisites
6.1.1.2 Targeted Services and Technologies
6.1.1.3 ONVIF::AuthenticatingByWS-UsernameToken
6.1.1.4 SOAP Communication Trace
6.1.1.4.1 WS-UsernameToken
6.1.2 Validating WS-UsernameToken
6.1.2.1 Prerequisites
6.1.2.2 Targeted Services and Technologies
6.1.2.3 ONVIF::InitializeDeviceAuthentication
6.2 User Management
6.2.1 Registering the User
6.2.1.1 Prerequisites
6.2.1.2 Targeted Services and Technologies
6.2.1.3 ONVIF::RegisteringUser
6.2.2 Changing the Password
6.2.2.1 Prerequisites
6.2.2.2 Targeted Services and Technologies
6.2.2.3 ONVIF::ChangingUserPassword
6.2.3 Deleting the User
6.2.3.1 Prerequisites
6.2.3.2 Targeted Services and Technologies
6.2.3.3 ONVIF::DeletingUser
6.3 Certificate Management and Usage
6.3.1 Setting Up a Self-Signed Certificate of the Device
6.3.1.1 Prerequisites
6.3.1.2 Targeted Services and Technologies
6.3.1.3 ONVIF::SetSelfSignedCertificate
6.3.2 Getting a PKCS #10 Certificate Signature Request from the Device
6.3.2.1 Prerequisites
6.3.2.2 Targeted Services and Technologies
6.3.2.3 ONVIF::GetSignedCertificateRequest
6.3.3 Setting Up a Signed Certificate of the Device (Except for a Self-Signed Certificate)
6.3.3.1 Prerequisites
6.3.3.2 Targeted Services and Technologies
6.3.3.3 ONVIF::SetCASingedCertificate
6.3.4 Getting Information About Device Certificates
6.3.4.1 Targeted Services and Technologies
6.3.4.2 ONVIF::GetCertificateInformation
6.3.5 Deleting the Certificates of a Device
6.3.5.1 Prerequisites
6.3.5.2 Targeted Services and Technologies
6.3.5.3 ONVIF::DeleteCertificate
6.4 Real-Time Streaming via RTP / RTSP / HTTPS
6.4.1 Prerequisites
6.4.2 Targeted Services and Technologies
6.4.3 ONVIF::RealTimeStreaming_RTP_RTSP_HTTPS
7 Streaming
7.1 Using an Existing Profile for Media Streaming
7.1.1 Prerequisites
7.1.2 Targeted Services and Technologies
7.1.3 ONVIF::StartUdpUnicastStream
7.2 Media Profile Configuration
7.2.1 Prerequisites
7.2.2 Targeted Services and Technologies
7.2.3 ONVIF::ChangeMediaProfile
7.3 Creating a New Media Profile and Adding an Entity
7.3.1 Prerequisites
7.3.2 Targeted Services and Technologies
7.3.3 ONVIF::CreateMediaProfile
7.4 Multicast Streaming
7.4.1 Prerequisites
7.4.2 Targeted Services and Technologies
7.4.3 ONVIF::MulticastStreaming
7.4.3.1 Case of with RTSP
7.4.3.2 Case of StartMulticastStreaming Command
7.4.4 RSTP Communication Trace
7.4.5 Bad Practice of Multicast Streaming
7.5 Audio Backchannel Handling
7.5.1 Prerequisites
7.5.2 Targeted Services and Technologies
7.5.3 ONVIF::StartBackChannelStream
7.6 Setting Up Metadata Streaming
7.6.1 Prerequisites
7.6.2 Targeted Services and Technologies
7.6.3 ONVIF::TestMetadataStreaming
7.6.4 ONVIF::FetchMetadataStream
7.6.5 RSTP-Communication Trace
8 Controlling
8.1 Adding a PTZ Configuration into a Media Profile
8.1.1 Prerequisites
8.1.2 Targeted Services and Technologies
8.1.3 ONVIF::AddPTZConfiguration
8.2 Changing a PTZ Configuration
8.2.1 Prerequisites
8.2.2 Targeted Services and Technologies
8.2.3 ONVIF::ChangePTZConfiguration
8.3 Move Operation
8.3.1 Prerequisites
8.3.2 Targeted Services and Technologies
8.3.3 ONVIF::MoveControl
8.4 Set / Goto Preset Position
8.4.1 Prerequisites
8.4.2 Targeted Services and Technologies
8.4.3 ONVIF::PresetControl
9 Eventing
9.1.1 GetEvent Properties
9.1.2 Prerequisites
9.1.3 Targeted Services and Technologies
9.1.4 ONVIF::TestGetEventProperties
9.2.1 Prerequisites
9.2.2 Targeted Services and Technologies
9.2.3 ONVIF::TestPullPointSubscription
9.3 Setting Up WS-BaseNotification
9.3.1 Prerequisites
9.3.2 Targeted Services and Technologies
9.3.3 ONVIF::TestNotificationSubscription
9.4 Processing NotificationMessage
9.4.1 ONVIF::ProcessNotificationMessage
10 Storage
10.1 Starting a Local Recording
10.1.1 Prerequisites
10.1.2 Targeted Services and Technologies
10.1.3 ONVIF::StartLocalRecording
10.2 Starting a Recording from a Remote Device
10.2.1 Targeted Services and Technologies
10.2.2 ONVIF::StartRemoteRecording
10.3 Finding a Recording
10.3.1 Prerequisites
10.3.2 Targeted Services and Technologies
10.3.3 ONVIF::FindRecording
11 Display
11.1 Configuring a Display Device to Show a Stream
11.1.1 Prerequisites
11.1.2 Targeted Services and Technologies
11.1.3 ONVIF::AttachReceiverToPane
11.2 Creating and Deleting PaneConfiguration
11.2.1 Prerequisites
11.2.2 Targeted Services and Technologies
11.2.3 ONVIF::CreateNewPaneConfiguration
11.3 Changing the Layout Based on LayoutOptions
11.3.1 Prerequisites
11.3.2 Targeted Services and Technologies
11.3.3 ONVIF::ChangeLayoutByOptions
11.4 Configuring a Receiver Based on DecoderCapabilities
11.4.1 Prerequisites
11.4.2 Targeted Services and Technologies
11.4.3 ONVIF::CreateReceiver
Annex A WSDL-Structures
Annex B SOAP Communication Traces from Use Case Examples
B.1 SOAP Communication Trace for Discovery
B.2 SOAP Communication Traces for Initial Setup and Administration
B.2.1 SOAP Communication Traces for First Actions After Discovery
B.2.1.1 GetSystemDateAndTime
B.2.1.2 GetDeviceInformation
B.2.1.3 GetCapabilities
B.2.2 SOAP Communication Traces for Get Network Interface Configuration
B.2.2.1 GetNetworkInterfaces
B.2.3 SOAP Communication Traces for Set Network Interface Configuration
B.2.3.1 SetNetworkInterfaces
B.2.3.2 SystemReboot
B.2.4 SOAP Communication Traces for Time synchronization Including NTP Configuration (Set Manually)
B.2.4.1 SetNTP
B.2.4.2 SetSystemDateAndTime
B.2.5 SOAP Communication Traces for Time synchronization Including NTP Configuration
B.2.5.1 SetNTP
B.2.5.2 SetSystemDateAndTime
B.2.6 SOAP Communication Traces for Backup System Configuration Files from a Device
B.2.6.1 device.GetSystemBackup
B.2.6.2 HTTP / MTOM Communication Trace
B.2.7 SOAP Communication Traces for Restore System Configuration Files to a Device
B.2.7.1 device.RestoreSystem
B.2.8 SOAP Communication Traces for Start System Restore via HTTP Post
B.2.8.1 device.StartSystemRestore
B.2.8.2 HTTP Communication Traces ('Unsupported Media Type', ‘uploaded file was invalid')
B.2.8.3 HTTP Communication Trace ('Internal Server Error', ‘error at the device')
B.2.8.4 HTTP Communication Trace (‘OK’, ‘restore successful’)
B.3 SOAP Communication Traces for Security
B.3.1 SOAP Communication Trace for Validating WS-UsernameToken
B.3.2 SOAP Communication Trace for User Management
B.3.2.1 Registering the User
B.3.2.2 Changing the Password
B.3.2.2.1 SetUser
B.3.2.3 Deleting the User
B.3.3 SOAP Communication Traces for Certificate Management and Usage
B.3.3.1 Setting Up a Self-Signed Certificate of the Device
B.3.3.1.2 GetCertificatesStatus
B.3.3.1.3 SetCertificatesStatus
B.3.3.2 Getting a PKCS #10 Certificate Signature Request from the Device
B.3.3.3 Setting Up a Signed Certificate of the Device (Except for a Self-Signed Certificate)
B.3.3.4 Getting Information About Device Certificates
B.3.3.5 Deleting the Certificates of a Device
B.3.3.5.1 DeleteCertificates
B.3.4 Real-Time Streaming via RTP / RTSP / HTTPS
B.3.4.1 GetNetworkProtocols
B.3.4.2 SetNetworkProtocols
B.4 SOAP Communication Traces for Streaming
B.4.1 SOAP Communication Traces for Using an Existing Profile for Media Streaming
B.4.1.1 GetProfiles
B.4.1.2 GetStreamURI
B.4.2 SOAP Communication Traces for Media Profile Configuration
B.4.2.1 GetVideoEncoderConfigurations
B.4.2.2 GetVideoEncoderConfigurationOptions
B.4.2.3 SetVideoEncoderConfiguration
B.4.3 SOAP Communication Traces for Creating a New Media Profile and Adding an Entity
B.4.3.1 CreateProfile
B.4.3.2 GetVideoSourceConfigurations
B.4.3.3 AddVideoSourceConfiguration
B.4.3.4 AddVideoEncoderConfiguration
B.4.4 SOAP Communication Traces for Multicast Streaming
B.4.4.1 StartMulticastStreaming
B.4.4.2 StopMulticastStreaming
B.4.5 RTSP Communication Traces for Audio Backchannel Handling
B.4.5.1 RTSP Communication Trace for RTSP Session Setup Example
B.4.6 SOAP Communication Traces for Setting Up Metadata Streaming
B.4.6.1 media:GetProfiles
B.4.6.2 media:GetMetadataConfigurations
B.4.6.3 media:GetMetadataConfigurationOptions
B.4.6.4 media:GetMetadataConfiguration
B.4.6.5 media:SetMetadataConfiguration
B.4.6.6 media:GetProfile
B.4.6.7 media:GetStreamUri
B.5 SOAP Communication Traces for Controlling
B.5.1 SOAP Communication Trace for Adding a PTZ Configuration into a Media Profile
B.5.1.1 GetConfigurations
B.5.1.2 AddPTZConfiguration
B.5.2 SOAP Communication Traces for Changing a PTZ Configuration
B.5.2.1 GetConfigurationOptions
B.5.2.2 SetConfiguration
B.5.3 SOAP Communication Traces for Move Operation
B.5.3.1 ContinuousMove
B.5.3.2 Stop
B.5.4 SOAP Communication Traces for Set / Goto Preset Position
B.5.4.1 SetPreset
B.5.4.2 GetPreset
B.5.4.3 GotoPreset
B.6 SOAP Communication Traces for Eventing
B.6.1 SOAP Communication Trace for GetEventProperties
B.6.1.1 GetEventProperties
B.6.2 SOAP Communication Traces for Setting Up PullPoint Subscription
B.6.2.1 CreatePullPointSubscription
B.6.2.2 PullMessages
B.6.3 SOAP Communication Trace for Setting Up WS-BaseNotification
B.6.3.1 Subscribe
B.7 SOAP Communication Traces for Storage
B.7.1 SOAP Communication Traces for Finding a Recording
B.7.1.1 GetAudioOutputs
B.7.1.2 GetAudioOutputConfiguration
B.7.1.3 GetAudioDecoderConfiguration
B.7.1.4 AddAudioOutputConfiguration
B.7.1.5 AddAudioDecoderConfiguration
B.7.1.6 GetRecordings
B.7.1.7 SetRecordingConfiguration
B.7.1.8 CreateRecordingJob
B.7.1.9 FindEvents
B.7.1.10 GetRecordingSearchResults
B.8 SOAP Communication Traces for Display
B.8.1 SOAP Communication Traces for Configuring a Display Device to Show a Stream
B.8.1.1 GetVideoOutputs
B.8.1.2 GetReceivers
B.8.1.3 GetPaneConfiguration
B.8.1.4 SetPaneConfiguration
B.8.1.5 SetReceiverMode
B.8.2 SOAP Communication Traces for Creating and Deleting PaneConfiguration
B.8.2.1 GetLayout
B.8.2.2 GetDisplayOptions
B.8.2.3 CreatePaneConfiguration
B.8.2.4 SetLayout
B.8.2.5 DeletePaneConfiguration
B.8.3 SOAP Communication Traces for Changing the Layout Based on LayoutOptions
B.8.3.1 GetDisplayOptions
B.8.3.2 SetLayout
B.8.4 SOAP Communication Traces for Configuring a Receiver Based on DecoderCapabilities
B.8.4.1 GetReceivers
B.8.4.2 CreateReceiver
Annex C List of Functions with References
Annex D Pseudo Code Conventions
D.1 General Language Style
D.2 while
D.3 if-else
D.4 foreach
D.5 break
D.6 try catch throw
D.7 optional Elements