From e56fe77b1345262da85f150255d82af473a7e9f3 Mon Sep 17 00:00:00 2001 From: Hans Busch <47081128+HansBusch@users.noreply.github.com> Date: Tue, 10 Mar 2026 05:55:24 +0100 Subject: [PATCH 1/7] Add support for recorded preset-tours. --- doc/PTZ.xml | 6 ++++-- wsdl/ver10/schema/onvif.xsd | 16 +++++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/doc/PTZ.xml b/doc/PTZ.xml index c018403d6..1eb291116 100644 --- a/doc/PTZ.xml +++ b/doc/PTZ.xml @@ -1727,7 +1727,8 @@ Add GeoMove
Preset Tour Operations - Preset tour is a feature for PTZ-capable devices, enabling the PTZ unit to move on specified presets sequentially at some interval. + Preset tour is a feature for PTZ-capable devices, enabling the PTZ unit to move + sequentially on a set of presets or a recorded tour. This section describes operations that manage the preset tours. These operations shall be implemented when a PTZ node in the PTZ service indicates support of preset tours with MaximumNumberOfPresetTours>0 capability value, All operations require a profile token referencing a Media Profile including a PTZConfiguration. All operations for preset tours shall always be persistent. PresetTours can have forward and backward directions, and in case direction is omitted, it is assumed to be forward. However, it is possible to specify random execution by setting the RandomPresetOrder attribute. In case RandomPresetOrder is set to true and Direction is also present, Direction will be ignored and presets of the Tour will be recalled randomly.
@@ -1843,7 +1844,8 @@ Add GeoMove
CreatePresetTour - A device supporting Preset Tour feature shall allow creating a new Preset Tour through the CreatePresetTour. + Create an empty preset tour to be either filled via ModifyPresetTour or learn via the + Record operation depending on the supported device capabilities. request diff --git a/wsdl/ver10/schema/onvif.xsd b/wsdl/ver10/schema/onvif.xsd index b3df64207..d68696c5e 100755 --- a/wsdl/ver10/schema/onvif.xsd +++ b/wsdl/ver10/schema/onvif.xsd @@ -4196,11 +4196,17 @@ decoding .A decoder shall decode every data it receives (according to its capabi - Indicates which preset tour operations are available for this PTZ Node. + Backward compatible indication of supported preset tour operations. + For extended capabilities see attribute PresetTourOperations. + + + List of operations as defined in ExtendedPTZPresetTourOperation + + @@ -4728,6 +4734,14 @@ decoding .A decoder shall decode every data it receives (according to its capabi + + + + + + + + From 5327fe59a21d85abe1adc37aa1efde9f4c748807 Mon Sep 17 00:00:00 2001 From: Hans Busch <47081128+HansBusch@users.noreply.github.com> Date: Tue, 10 Mar 2026 07:29:22 +0100 Subject: [PATCH 2/7] Incorporate feedback from WG meeting. --- doc/PTZ.xml | 5 ++++- wsdl/ver10/schema/onvif.xsd | 9 +++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/doc/PTZ.xml b/doc/PTZ.xml index 1eb291116..ba987d370 100644 --- a/doc/PTZ.xml +++ b/doc/PTZ.xml @@ -1936,7 +1936,10 @@ Add GeoMove Stop: indicates stopping the preset tour. - Pause:iIndicates pausing the preset tour. + Pause: indicates pausing the preset tour. + + + Record: start an new recording and override any existing recording. When receiving another OperatePresetTour command of Start operation for a preset tour which has already been started, the preset tour shall be restarted with the newly requested parameter. diff --git a/wsdl/ver10/schema/onvif.xsd b/wsdl/ver10/schema/onvif.xsd index d68696c5e..0ae68a58a 100755 --- a/wsdl/ver10/schema/onvif.xsd +++ b/wsdl/ver10/schema/onvif.xsd @@ -4204,7 +4204,7 @@ decoding .A decoder shall decode every data it receives (according to its capabi - List of operations as defined in ExtendedPTZPresetTourOperation + List of operations as defined in ExtendedPTZTourOperation @@ -4734,7 +4734,7 @@ decoding .A decoder shall decode every data it receives (according to its capabi - + @@ -4777,6 +4777,11 @@ decoding .A decoder shall decode every data it receives (according to its capabi Unique identifier of this preset tour. + + + Signal that this tour has been recorded and may have an empty list of tour spots. + + From e804653ade3a0be85b7b5b346b4c914785fb410c Mon Sep 17 00:00:00 2001 From: Hans Busch <47081128+HansBusch@users.noreply.github.com> Date: Wed, 11 Mar 2026 01:48:28 +0100 Subject: [PATCH 3/7] Improve documentation. - Rename new ExtendedPTZPresetOperations to PTZTourOperations. - Make operation extensible. --- doc/PTZ.xml | 36 ++++++++++++++++++++++++++---------- wsdl/ver10/schema/onvif.xsd | 10 +++++----- wsdl/ver20/ptz/wsdl/ptz.wsdl | 6 +++++- 3 files changed, 36 insertions(+), 16 deletions(-) diff --git a/doc/PTZ.xml b/doc/PTZ.xml index ba987d370..465f581c4 100644 --- a/doc/PTZ.xml +++ b/doc/PTZ.xml @@ -1726,11 +1726,20 @@ Add GeoMove
- Preset Tour Operations - Preset tour is a feature for PTZ-capable devices, enabling the PTZ unit to move - sequentially on a set of presets or a recorded tour. - This section describes operations that manage the preset tours. These operations shall be implemented when a PTZ node in the PTZ service indicates support of preset tours with MaximumNumberOfPresetTours>0 capability value, All operations require a profile token referencing a Media Profile including a PTZConfiguration. All operations for preset tours shall always be persistent. - PresetTours can have forward and backward directions, and in case direction is omitted, it is assumed to be forward. However, it is possible to specify random execution by setting the RandomPresetOrder attribute. In case RandomPresetOrder is set to true and Direction is also present, Direction will be ignored and presets of the Tour will be recalled randomly. + Tour Operations + Tours are a feature for PTZ-capable devices, enabling the PTZ unit to move sequentially + on a set of presets or a recorded tour. + This section describes operations to manage and operate tours. A PTZ node signaling + SupportedPresetTour shall support preset tour configuration and operation. + All operations require a profile token referencing a Media Profile including a + PTZConfiguration. Tour configurations shall be persistent. + Preset tours can have forward and backward directions, and in case direction is omitted, + it is assumed to be forward. However, it is possible to specify random execution by setting + the RandomPresetOrder attribute. In case RandomPresetOrder is set to true and Direction is + also present, Direction will be ignored and presets of the Tour will be recalled + randomly. + A device signaling support for operation mode Record shall support recording of + tours.
GetPresetTours A device supporting Preset Tour feature shall return all available preset tours through GetPresetTours. @@ -1926,7 +1935,8 @@ Add GeoMove
OperatePresetTour - A device supporting preset tours shall allow starting, stopping, or pausing a preset tour through OperatePresetTour. + A device supporting preset tours shall allow starting, stopping, or pausing a preset + tour as signaled by the PTZ node configuration. Preset tour can be operated with the PresetTourOperation parameter of OperatePresetTour command. @@ -1951,8 +1961,8 @@ Add GeoMove Reference to an existing media profile. PresetTourToken [tt:PTZPresetTourToken] Reference to an existing preset tour. - Operation [tt:PTZPresetTourOperation] - Operation information. + Operation [xs:string] + Operation as define by tt:PTZTourOperation. @@ -1986,7 +1996,8 @@ Add GeoMove
RemovePresetTour - A device supporting preset tours shall support removing preset tours through RemoevPresetTour. + A device supporting preset tours shall support removing preset tours through + RemovePresetTour. request @@ -2088,7 +2099,8 @@ Add GeoMove - PresetTourDirection: A device refers this flag to choose which direction the preset tour goes. It is omissible parameter and Forward shall be chosen in case it is omitted. [Optional] + PresetTourDirection: Optional list of supported operation direction. Defaults + to forward only. Forward: Preset tour goes in forward order. @@ -2100,6 +2112,10 @@ Add GeoMove + + IsRecording: The preset tour has been recorded instead of being defined by a set + of presets. + Token: Unique identifier of the preset tour diff --git a/wsdl/ver10/schema/onvif.xsd b/wsdl/ver10/schema/onvif.xsd index 0ae68a58a..1985e8dc4 100755 --- a/wsdl/ver10/schema/onvif.xsd +++ b/wsdl/ver10/schema/onvif.xsd @@ -4197,14 +4197,14 @@ decoding .A decoder shall decode every data it receives (according to its capabi Backward compatible indication of supported preset tour operations. - For extended capabilities see attribute PresetTourOperations. + For extended capabilities see attribute PTZTourOperations. - + - List of operations as defined in ExtendedPTZTourOperation + List of operations as defined in PTZTourOperation @@ -4734,7 +4734,7 @@ decoding .A decoder shall decode every data it receives (according to its capabi - + @@ -4992,7 +4992,7 @@ decoding .A decoder shall decode every data it receives (according to its capabi - Supported options for Direction of Preset Tour. + Supported direction of Preset Tour. Defaults to forward. diff --git a/wsdl/ver20/ptz/wsdl/ptz.wsdl b/wsdl/ver20/ptz/wsdl/ptz.wsdl index 7d01747ae..483035d35 100644 --- a/wsdl/ver20/ptz/wsdl/ptz.wsdl +++ b/wsdl/ver20/ptz/wsdl/ptz.wsdl @@ -653,7 +653,11 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO - + + + Operation as define by tt:PTZTourOperation. + + From a1aac80197aba186dcf6b971721e6984675134db Mon Sep 17 00:00:00 2001 From: Hans Busch <47081128+HansBusch@users.noreply.github.com> Date: Wed, 11 Mar 2026 09:34:54 +0100 Subject: [PATCH 4/7] - Incorporate Genetec comments. - Add separate PTZ node information about supported number of recorded tours. - Streamline requirements. --- doc/PTZ.xml | 20 ++++++++++++++------ wsdl/ver10/schema/onvif.xsd | 9 ++++++++- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/doc/PTZ.xml b/doc/PTZ.xml index 465f581c4..010f065be 100644 --- a/doc/PTZ.xml +++ b/doc/PTZ.xml @@ -412,6 +412,10 @@ Add GeoMove MaximumNumberOfPresetTours – Indicates number of preset tours that can be created. Required preset tour operations shall be available for this PTZ node if one or more preset tours are supported. + + MaxRecordedTours - Indicatesthe maximum number of recorded tours that can be + created. +
@@ -1891,7 +1895,9 @@ Add GeoMove
ModifyPresetTour - A device supporting preset tours shall allow modifying a preset tour through ModifyPresetTour. + A device signaling support for preset tours via the PTZ node parameter + MaximumNumberOfPresetTours shall support modifying a preset tour through + ModifyPresetTour. request @@ -1940,10 +1946,10 @@ Add GeoMove Preset tour can be operated with the PresetTourOperation parameter of OperatePresetTour command. - Start: indicates starting the preset tour or re-starting the paused preset tour. + Start: indicates starting the tour or re-starting the paused preset tour. - Stop: indicates stopping the preset tour. + Stop: indicates stopping a tour or a recording. Pause: indicates pausing the preset tour. @@ -1953,6 +1959,8 @@ Add GeoMove When receiving another OperatePresetTour command of Start operation for a preset tour which has already been started, the preset tour shall be restarted with the newly requested parameter. + A PTZ node that signals support for recorded tours via its MaxRecordedTours field + shall support the Record operation. request @@ -1996,7 +2004,7 @@ Add GeoMove
RemovePresetTour - A device supporting preset tours shall support removing preset tours through + A device supporting tours shall support removing preset and recorded tours through RemovePresetTour. @@ -2113,8 +2121,8 @@ Add GeoMove - IsRecording: The preset tour has been recorded instead of being defined by a set - of presets. + IsRecorded: The preset tour has been recorded instead of being defined by a set of + presets. Token: Unique identifier of the preset tour diff --git a/wsdl/ver10/schema/onvif.xsd b/wsdl/ver10/schema/onvif.xsd index 1985e8dc4..2a1983b8f 100755 --- a/wsdl/ver10/schema/onvif.xsd +++ b/wsdl/ver10/schema/onvif.xsd @@ -4162,6 +4162,13 @@ decoding .A decoder shall decode every data it receives (according to its capabi + + + + Indicates the maximum number of different tours that can be recorded. + + + @@ -4777,7 +4784,7 @@ decoding .A decoder shall decode every data it receives (according to its capabi Unique identifier of this preset tour. - + Signal that this tour has been recorded and may have an empty list of tour spots. From 2b0af46eac02f316aeebe17731cd63566edd7db5 Mon Sep 17 00:00:00 2001 From: Hans Busch <47081128+HansBusch@users.noreply.github.com> Date: Sat, 14 Mar 2026 05:21:45 +0100 Subject: [PATCH 5/7] Create separate method RecordTour to avoid creation of unclear tour types. Revert extension of tour-operations as now original set is sufficient. --- doc/PTZ.xml | 65 +++++++++++++++++++++++++++++++----- wsdl/ver10/schema/onvif.xsd | 16 +-------- wsdl/ver20/ptz/wsdl/ptz.wsdl | 46 ++++++++++++++++++++++--- 3 files changed, 98 insertions(+), 29 deletions(-) diff --git a/doc/PTZ.xml b/doc/PTZ.xml index 010f065be..0c1d1f694 100644 --- a/doc/PTZ.xml +++ b/doc/PTZ.xml @@ -1732,9 +1732,8 @@ Add GeoMove
Tour Operations Tours are a feature for PTZ-capable devices, enabling the PTZ unit to move sequentially - on a set of presets or a recorded tour. - This section describes operations to manage and operate tours. A PTZ node signaling - SupportedPresetTour shall support preset tour configuration and operation. + on a set of presets or a recorded tour. This section describes operations to manage and + operate tours. All operations require a profile token referencing a Media Profile including a PTZConfiguration. Tour configurations shall be persistent. Preset tours can have forward and backward directions, and in case direction is omitted, @@ -1746,7 +1745,8 @@ Add GeoMove tours.
GetPresetTours - A device supporting Preset Tour feature shall return all available preset tours through GetPresetTours. + A device with PTZ node signaling support for SupportedPresetTour or MaxRecordedTours + shall support this command to return all tours of a PTZ node. request @@ -1781,7 +1781,8 @@ Add GeoMove
GetPresetTour - A device supporting preset tours shall return the requested preset tour through GetPresetTour. + A device with PTZ node signaling support for SupportedPresetTour or MaxRecordedTours + shall support this command to return the configuration of the requested tour. request @@ -1813,14 +1814,16 @@ Add GeoMove access class - READ_MEDIA + READ_MEDIA
GetPresetTourOptions - A device supporting preset tours shall provide options for how preset tours can be configured through GetPresetTourOptions. + A device with PTZ node signaling SupportedPresetTour shall support this command and + provide options for how preset tours can be configured through + GetPresetTourOptions. request @@ -1857,8 +1860,9 @@ Add GeoMove
CreatePresetTour - Create an empty preset tour to be either filled via ModifyPresetTour or learn via the - Record operation depending on the supported device capabilities. + Create an empty preset tour to be filled via ModifyPresetTour. A device signaling + support via its PTZ node field MaximumNumberOfPresetTours shall support this + command. request @@ -1893,6 +1897,49 @@ Add GeoMove
+
+ RecordTour + Create an recorded tour or overwrite an existing tour. Finish the recording with tour + operation stop. A tour can be deleted with RemovePresetTour. + A device signaling support for recorded tours via the capability MaxRecordedTours + shall support this command. + + + request + + ProfileToken [tt:ReferenceToken] + Reference to an existing media profile. + TourToken - optional [tt:ReferenceToken] + If provided an existing tour will be overwritten instead of creating a new one. + + + + response + + TourToken [tt:ReferenceToken] + Reference to the newly created tour. + + + + faults + + env:Sender - ter:InvalidArgVal - ter:NoProfile + The requested profile token ProfileToken does not exist. + env:Sender - ter:InvalidArgVal - ter:NoPTZProfile + The requested profile token does not reference a PTZ configuration. + env:Sender - ter:InvalidArgVal - ter:TooManyRecordedTours + The limit of MaxRecordedTours has been reached and no further + recorded tours can be created for the requested PTZ node. + + + + access class + + ACTUATE + + + +
ModifyPresetTour A device signaling support for preset tours via the PTZ node parameter diff --git a/wsdl/ver10/schema/onvif.xsd b/wsdl/ver10/schema/onvif.xsd index 2a1983b8f..70451eddf 100755 --- a/wsdl/ver10/schema/onvif.xsd +++ b/wsdl/ver10/schema/onvif.xsd @@ -4203,17 +4203,11 @@ decoding .A decoder shall decode every data it receives (according to its capabi - Backward compatible indication of supported preset tour operations. - For extended capabilities see attribute PTZTourOperations. + List of operations provided for preset tours. - - - List of operations as defined in PTZTourOperation - - @@ -4741,14 +4735,6 @@ decoding .A decoder shall decode every data it receives (according to its capabi - - - - - - - - diff --git a/wsdl/ver20/ptz/wsdl/ptz.wsdl b/wsdl/ver20/ptz/wsdl/ptz.wsdl index 483035d35..ff8fae7c3 100644 --- a/wsdl/ver20/ptz/wsdl/ptz.wsdl +++ b/wsdl/ver20/ptz/wsdl/ptz.wsdl @@ -634,6 +634,26 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO + + + + + + + Optional tour to be overwritten. By default create a new tour. + + + + + + + + + + + + + @@ -653,11 +673,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO - - - Operation as define by tt:PTZTourOperation. - - + @@ -900,6 +916,12 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO + + + + + + @@ -1150,6 +1172,11 @@ If no stop argument for pan, tilt or zoom is set, the device will stop all ongoi + + Start recording of a new recorded tour or start overwriting an existing tour. + + + Operation to modify a preset tour for the selected media profile. @@ -1403,6 +1430,15 @@ If no stop argument for pan, tilt or zoom is set, the device will stop all ongoi + + + + + + + + + From 5c25aef5b22dfd0f66c8acfd575581777dce1286 Mon Sep 17 00:00:00 2001 From: HansBusch <47081128+HansBusch@users.noreply.github.com> Date: Tue, 31 Mar 2026 06:58:32 +0200 Subject: [PATCH 6/7] Editorial: fix accidental blank. --- doc/PTZ.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/PTZ.xml b/doc/PTZ.xml index 0c1d1f694..463758be4 100644 --- a/doc/PTZ.xml +++ b/doc/PTZ.xml @@ -1814,7 +1814,7 @@ Add GeoMove access class - READ_MEDIA + READ_MEDIA From ad041a1ca472a36f96c85f24ce3ba8fc0c9dafbc Mon Sep 17 00:00:00 2001 From: HansBusch <47081128+HansBusch@users.noreply.github.com> Date: Tue, 31 Mar 2026 07:48:47 +0200 Subject: [PATCH 7/7] Revert record operation. Fix typos. --- doc/PTZ.xml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/doc/PTZ.xml b/doc/PTZ.xml index 463758be4..2cb1bf869 100644 --- a/doc/PTZ.xml +++ b/doc/PTZ.xml @@ -413,7 +413,7 @@ Add GeoMove MaximumNumberOfPresetTours – Indicates number of preset tours that can be created. Required preset tour operations shall be available for this PTZ node if one or more preset tours are supported. - MaxRecordedTours - Indicatesthe maximum number of recorded tours that can be + MaxRecordedTours - Indicates the maximum number of recorded tours that can be created. @@ -1899,7 +1899,7 @@ Add GeoMove
RecordTour - Create an recorded tour or overwrite an existing tour. Finish the recording with tour + Create a recorded tour or overwrite an existing tour. Finish the recording with tour operation stop. A tour can be deleted with RemovePresetTour. A device signaling support for recorded tours via the capability MaxRecordedTours shall support this command. @@ -2001,9 +2001,6 @@ Add GeoMove Pause: indicates pausing the preset tour. - - Record: start an new recording and override any existing recording. - When receiving another OperatePresetTour command of Start operation for a preset tour which has already been started, the preset tour shall be restarted with the newly requested parameter. A PTZ node that signals support for recorded tours via its MaxRecordedTours field