forked from onvif/specs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ResourceQuery.xml
1623 lines (1623 loc) · 63.9 KB
/
ResourceQuery.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0"?>
<?xml-stylesheet href="docbook.xsl" type="text/xsl" ?>
<book xmlns="http://docbook.org/ns/docbook" version="5.0">
<info>
<title>ONVIF Resource Query Specification</title>
<titleabbrev>ResourceQuery</titleabbrev>
<releaseinfo>19.12</releaseinfo>
<author>
<orgname>ONVIF™</orgname>
<uri>www.onvif.org</uri>
</author>
<pubdate> December, 2019</pubdate>
<mediaobject>
<imageobject>
<imagedata fileref="media/logo.png" contentwidth="60mm" />
</imageobject>
</mediaobject>
<copyright>
<year>2008-2020</year>
<holder>ONVIF™ All rights reserved.</holder>
</copyright>
<legalnotice>
<para>Recipients of this document may copy, distribute, publish, or display this document so long as this copyright notice, license and disclaimer are retained with all copies of the document. No license is granted to modify this document.</para>
<para>THIS DOCUMENT IS PROVIDED "AS IS," AND THE CORPORATION AND ITS MEMBERS AND THEIR AFFILIATES, MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THIS DOCUMENT ARE SUITABLE FOR ANY PURPOSE; OR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</para>
<para>IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THIS DOCUMENT, WHETHER OR NOT (1) THE CORPORATION, MEMBERS OR THEIR AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR (2) SUCH DAMAGES WERE REASONABLY FORESEEABLE, AND ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THIS DOCUMENT. THE FOREGOING DISCLAIMER AND LIMITATION ON LIABILITY DO NOT APPLY TO, INVALIDATE, OR LIMIT REPRESENTATIONS AND WARRANTIES MADE BY THE MEMBERS AND THEIR RESPECTIVE AFFILIATES TO THE CORPORATION AND OTHER MEMBERS IN CERTAIN WRITTEN POLICIES OF THE CORPORATION.</para>
</legalnotice>
<revhistory>
<revision>
<revnumber>18.12</revnumber>
<date>Dec 2018</date>
<author>
<personname>Hans Busch</personname>
</author>
<revremark>First release</revremark>
</revision>
<revision>
<revnumber>19.12</revnumber>
<date>Dec 2019</date>
<author>
<personname>Stefan Andresson</personname>
</author>
<revremark>Added Resource Query for Recordings</revremark>
</revision>
</revhistory>
</info>
<chapter>
<title>Scope </title>
<para>This document defines the protocol for accessing resources on a remote system.</para>
</chapter>
<chapter>
<title>Normative references</title>
<para>IANA Media Type Reference</para>
<para role="reference">< <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.iana.org/assignments/media-types/media-types.xhtml"></link>></para>
<para>IETF RFC 4122 - A Universally Unique IDentifier (UUID) URN Namespace</para>
<para role="reference"><<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://tools.ietf.org/html/rfc4122"></link>></para>
<para>ONVIF Core Specification</para>
<para role="reference"><<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.onvif.org/onvif/specs/core/ONVIF-Core-Specification.pdf"></link>></para>
</chapter>
<chapter>
<title>Terms and Definitions</title>
<section>
<title>Definitions</title>
<informaltable>
<tgroup cols="2">
<colspec colname="c1" colwidth="24*" />
<colspec colname="c2" colwidth="76*" />
<tbody valign="top">
<row>
<entry align="left">
<para>
<emphasis role="bold">Media Configuration</emphasis>
</para>
</entry>
<entry align="left">
<para>An abstract component that produces or consumes a media stream on the network, i.e. video and/or audio stream. </para>
</entry>
</row>
<row>
<entry align="left">
<para>
<emphasis role="bold">Media Profile</emphasis>
</para>
</entry>
<entry align="left">
<para>Maps video and audio sources and outputs encoders as well as PTZ and analytics configurations.</para>
</entry>
</row>
<row>
<entry align="left">
<para>
<emphasis role="bold">Remote Token</emphasis>
</para>
</entry>
<entry align="left">
<para>Token of a remote resource</para>
</entry>
</row>
<row>
<entry align="left">
<para>
<emphasis role="bold">Resource</emphasis>
</para>
</entry>
<entry align="left">
<para>In this document the term is used to refer to an ONVIF resource that can be addressed via a token.</para>
</entry>
</row>
<row>
<entry align="left">
<para>
<emphasis role="bold">Token</emphasis>
</para>
</entry>
<entry align="left">
<para>Unique textual reference of a resource.</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
<section>
<title>Abbreviations</title>
<informaltable>
<tgroup cols="2">
<colspec colname="c1" colwidth="24*" />
<colspec colname="c2" colwidth="76*" />
<tbody valign="top">
<row>
<entry valign="middle">
<para>API</para>
</entry>
<entry valign="middle">
<para>Application Protocol Interface</para>
</entry>
</row>
<row>
<entry valign="middle">
<para>NVR</para>
</entry>
<entry valign="middle">
<para>Network Video Recorder</para>
</entry>
</row>
<row>
<entry valign="middle">
<para>RTSP</para>
</entry>
<entry valign="middle">
<para>Real Time Streaming Protocol</para>
</entry>
</row>
<row>
<entry valign="middle">
<para>URI</para>
</entry>
<entry valign="middle">
<para>Uniform Resource Identifier</para>
</entry>
</row>
<row>
<entry valign="middle">
<para>URL</para>
</entry>
<entry valign="middle">
<para>Uniform Resource Locator</para>
</entry>
</row>
<row>
<entry valign="middle">
<para>VMS</para>
</entry>
<entry valign="middle">
<para>Video Management System (synonym for VSS)</para>
</entry>
</row>
<row>
<entry valign="middle">
<para>VSS</para>
</entry>
<entry valign="middle">
<para>Video Surveillance System</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</chapter>
<chapter>
<title>Overview</title>
<para>This document describes how a Video Management System can expose its resources so that a remote VSS or a client can make use of them with the APIs defined by the various ONVIF specifications.</para>
<para>The example in <xref linkend="_Ref486253450" /> shows two cameras attached to a lower level VSS which are operated from a client that connects to an upper level VSS. This document assumes that standard existing ONVIF commands are used for e.g. moving the focus in the example below.</para>
<para>This specification focuses on resource naming and querying. </para>
<figure xml:id="_Ref486253450">
<title>Example setup with two VSS </title>
<mediaobject>
<imageobject>
<imagedata fileref="media/ResourceQuery/image2.svg" contentwidth="100mm" />
</imageobject>
</mediaobject>
</figure>
<section>
<title>Resource Addressing</title>
<para>In the ONVIF specifications resources are addressed by so called tokens. Tokens are character strings of a defined length and are enumerated by the device to ease the devices resource management. Similarly this specifications assumes that a VSS enumerates its attached device resources in such a way that a unique token is assigned to each of its attached devices resources.</para>
<para>Additionally this specification assumes that a VSS implements resource token mapping by adding a prefix delimited by a colon. Whether a VSS simply prepends a prefix to a device token or does a complete remapping is outside of the scope of this specification.</para>
<para>The following list provides an incomplete list of resources that can be handled:</para>
<itemizedlist>
<listitem>
<para>Media Profiles</para>
</listitem>
<listitem>
<para>Video and Audio Sources</para>
</listitem>
<listitem>
<para>Any Media Configurations including OSD and Masks</para>
</listitem>
<listitem>
<para>PTZ Nodes</para>
</listitem>
<listitem>
<para>Digital Inputs</para>
</listitem>
<listitem>
<para>Relay Outputs</para>
</listitem>
<listitem>
<para>Recordings, Recording Tracks and Recording Jobs</para>
</listitem>
</itemizedlist>
</section>
<section>
<title>Resource Queries and Updates</title>
<para>This specification uses the ONVIF property event mechanism to model global resources. A client or upper level VSS subscribes to a VSS pull point. In consecutive requests it then pulls all resources it is interested in in order to get to know all relevant resources of a lower level VSS. </para>
<para>Once all resources have been reported further pull messages will either timeout when no changes happened or report changes. In this context changes are added resources, modification of resource properties or removed resources.</para>
<para>By applying the property event notification mechanism to resources a client or upper level VSS has always up to date information about the lower level VSS resources it is interested in.</para>
</section>
<section>
<title>Events</title>
<para>An upper level VSS can retrieve events either generic or for a given token. In order to retrieve e.g. motion events from a dedicated resource a client has to provide a content filter with matching source token.</para>
</section>
<section>
<title>Authentication</title>
<para>Access to remote VSS may require strict authentication constraints. Refer to the ONVIF Security Configuration Specification for means to server and client authentication.</para>
</section>
<section>
<title>Live Checks</title>
<para>The mechanism defined in this specification make use of the ONVIF real-time pull point. When no events are pending at a pull point the PullMessages call will timeout after a client defined timeout. The client is in control of the timeout and can so ensure a continuous heartbeat from the server. Hence an additional ping or heartbeat interface is not needed.</para>
</section>
<section>
<title>Live Video Example</title>
<para>This example assumes that a police station client wants to get live feeds related to an incident at a certain geo location.</para>
<orderedlist>
<listitem>
<para>The client authenticates itself at the VSS using its client certificate.</para>
</listitem>
<listitem>
<para>Client subscribes to VSS topic Resource/MediaProfile in a distance of 100 meter of a lon/lat provided geo location.</para>
</listitem>
<listitem>
<para>VSS responds to PullMessages with enumerating all media profiles in the given area.</para>
</listitem>
<listitem>
<para>If the client receives multiple profiles for a remote device it may select the best suited one by querying the profile configurations. For each profile token the client calls GetProfiles. By supplying parameter Type set to VideoSource and VideoEncoder it will receive detailed information about the Video resolution and encoder settings.</para>
</listitem>
<listitem>
<para>The client calls GetStreamUri for each video source on the selected profile</para>
</listitem>
<listitem>
<para>The client streams video and displays it on the Police Video Wall.</para>
</listitem>
</orderedlist>
<para>At the first glance it looks like no new functional interface has been defined. Although this is correct, the VSS still has to implement a number of operations in order to make the above example happen:</para>
<orderedlist numeration="loweralpha">
<listitem>
<para>Enumerate its attached camera profiles as resource events</para>
</listitem>
<listitem>
<para>Implement the Media2 API</para>
</listitem>
<listitem>
<para>Map request media profile token to cameras and their local tokens</para>
</listitem>
<listitem>
<para>Map response profile tokens to global tokens</para>
</listitem>
<listitem>
<para>Support streaming proxy and map camera stream uri to proxy</para>
</listitem>
</orderedlist>
<para>Additionally an intelligent VSS may expose only those media profiles to its client that have a decent data rate so that it is able to proxy those Video streams.</para>
<para>Instead of directly connecting to the remote lower level VSS systems the police station client may connect to an upper level VSS that in turn combines search results from multiple lower level VSS and forwards commands to individual camera sources via the appropriate lower level VSS. </para>
</section>
<section xml:id="_Ref25752452">
<title>Forensic Example</title>
<para>This example assumes that a police station client wants to retrieve recordings related to an incident at a certain geo location.</para>
<orderedlist>
<listitem>
<para>The client authenticates itself at the VSS using its client certificate.</para>
</listitem>
<listitem>
<para>Client subscribes to VSS topic Resource/VideoSource in a distance of 100 meter of a lon/lat provided geo location.</para>
</listitem>
<listitem>
<para>VSS responds to PullMessages with enumerating all video sources in the given area.</para>
</listitem>
<listitem>
<para>Client calls FindEvents passing the interested time range and a list of video sources as search scope.</para>
</listitem>
<listitem>
<para>Client calls GetEventSearchResults to get all available recordings at the interested location and in the given period of time.</para>
</listitem>
<listitem>
<para>The client retrieves the RTSP URIs by calling the Replay GetReplayUri method for the recording.</para>
</listitem>
<listitem>
<para>The client plays back video of interested cameras by retrieving the RTSP media stream for the uri retrieved by a call to Replay:GetReplayUri.</para>
</listitem>
</orderedlist>
<para>Alternative to the above approach the client might also directly query recording resource at a geo location. Some replays may fail because the cameras did not record for the selected location at the selected time of day.</para>
<para>Above example is applicable for both content stored in camera's edge storage and VMS recording server. It is up to the VMS application how the recordings are retrieved.</para>
</section>
<section>
<title>Notification Mechanism</title>
<para>This specification assumes that the ONVIF Realtime Pullpoint mechanism is deployed. Note that the resource query is transparent to the event transport mechanism and the events may also be conveyed via the OASIS Base Notification mechanism or the Notification Streaming Interface.</para>
</section>
</chapter>
<chapter>
<title>Resource Addressing</title>
<section>
<title>Remote Tokens</title>
<para>ONVIF specifications are generally assuming that the device defines tokens which are unique within a device and its context. This specification extends the scheme to allow building globally unique tokens called remote tokens. </para>
<para>A remote token shall be constructed like a qname with a device specific prefix and a local token. </para>
<para> RemoteToken = Prefix + ':' + LocalToken</para>
<para>The overall string length of the remote token is limited to 64 characters. A local token must not exceed 36 characters and should contain no colon. The length limitation is chosen such that it enables the use of UUIDs as defined in RFC 4122. Note that device implementations typically use compact tokens composed from few characters.</para>
<para>A VSS shall use the same prefix for all tokens of the same device. This allows a client to understand which tokens they can use for any ONVIF API call.</para>
<para>A VSS may choose to simply use device local tokens as LocalToken part or create an internal mapping. A client may not assume that use tokens received from a VSS directly in device calls by stripping the prefix.</para>
<para>The naming conventions for the prefix part are outside of the scope of this specification. Depending on the application area implementers may choose different approaches. As a consequence this specification does not mandate that remote tokens are globally unique between different VSS. See Annex A for a country specific definition of globally unique addresses.</para>
</section>
<section>
<title>Token Context</title>
<para>Clients talking to multiple servers at a time like VSS and/or devices shall address resources to a server only with tokens received from that same server. There is no guarantee that remote tokens received from one server may be used to address the same resource at another server.</para>
</section>
</chapter>
<chapter>
<title>Resource Queries</title>
<section>
<title>General</title>
<para>This specification models resources as so called property events. A resource is an ONVIF configuration item addressed via a token. </para>
<para>A server supporting resource queries shall signal the supported resource queries via the GetEventProperties interface of the event service. The following resources may be enumerated:</para>
<para>For media configurations:</para>
<para>VideoSourceConfiguration, AudioSourceConfiguration, VideoEncoderConfiguration, AudioEncoderConfiguration, AudioOutputConfiguration, AudioDecoderConfiguration, MetadataConfiguration, AnalyticsConfiguration, PTZConfiguration, OSDConfiguration, MaskConfiguration</para>
<para>For media profiles: MediaProfile</para>
</section>
<section>
<title>Resource Event</title>
<para>Each resource maps to the following event definition;</para>
<programlisting><![CDATA[
Topic: tns1:Resource/<resource name>
<tt:MessageDescription IsProperty="true">
<tt:Source>
<tt:SimpleItemDescription Name="Token" Type="tt:ReferenceToken"/>
</tt:Source>
<tt:Data>
<tt:SimpleItemDescription Name="Name" Type="xs:string"/>
<tt:ElementItemDescription Name="Location" Type="tt:GeoLocation"/>
<tt:SimpleItemDescription Name="Scope" Type="xs:string"/>
<tt:SimpleItemDescription Name="Offline" Type="xs:boolean"/>
</tt:Data>
</tt:MessageDescription>
]]></programlisting>
<para>The source item Token is mandatory and shall contain a qualified token that is unique within the serving system.</para>
<para>The data items are optional. </para>
<para>The data item scope refers to the ONVIF device discovery scope entry. It may occur multiple times for each scope entry supported by the device.</para>
<para>An event shall be generated with PropertyOperation set to Initialized whenever a resource is signaled the first time in a subscription or it is newly added to the system. An event with PropertyOperation set to Deleted shall be generated when a resource is removed from the system.</para>
<para>Note that a change from online to offline or vice versa shall only create a PropertyOperation of type Changed if the event contains an Offline state boolean.</para>
</section>
<section>
<title>Location Filter</title>
<para>A service supporting resource queries shall support the Location Filter. </para>
<programlisting><![CDATA[
<xs:complexType name="LocationFilter">
<xs:sequence>
<xs:element name="lon" type="xs:double"/>
<xs:element name="lat" type="xs:double"/>
<xs:element name="height" type="xs:float" minOccurs="0"/>
<xs:element name="radius" type="xs:float"/>
<xs:element name="includeUnknown" type="xs:boolean" minOccurs="0"/>
</xs:sequence >
</xs:complexType>
]]></programlisting>
<para>Devices with unknown location shall correspond to a match if the property includeUnkown is set.</para>
</section>
<section xml:id="_Ref25752483">
<title>Prefix Filter</title>
<para>A server supporting resource queries shall support the Prefix Filter. The prefix filter allows to restrict the search to any events of a device by the prefix assigned by the VMS.</para>
<programlisting><![CDATA[
<xs:complexType name="PrefixFilter">
<xs:sequence>
<xs:element name="Prefix" type="xs:string"/>
</xs:sequence>
</xs:complexType>
]]></programlisting>
</section>
<section>
<title>Scope Filter</title>
<para>A server supporting resource queries shall support the Scope Filter allowing to search for device scope entries.</para>
<programlisting><![CDATA[
<xs:complexType name="ScopeFilter">
<xs:sequence>
<xs:element name="Scope" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Match"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
]]></programlisting>
<para>See section 7.3.3 of the ONVIF Core Specification for the scope matching rules.</para>
</section>
<section>
<title>Select Filter</title>
<para>A server supporting resource queries shall support the Select Filter allowing to restrict the resulting data items of each event in order to reduce the message sizes of large queries.</para>
<programlisting><![CDATA[
<xs:complexType name="SelectFilter">
<xs:sequence>
<xs:element name="Path" type="xs:string" maxOccurs=”unbounded/>
</xs:sequence >
</xs:complexType>
]]></programlisting>
<para>Each entry defines an XPath expression that matches to one of the event data items.</para>
<para>The following example restricts the content of the result to the resource name and location scope:</para>
<programlisting><![CDATA[
<SelectFilter>
<Path>/Name</Path>
<Path>/Scope/Location</Path>
</SelectFilter>
]]></programlisting>
</section>
</chapter>
<appendix>
<title>Addressing Scheme (informative)</title>
<para>This Annex defines a globally unique addressing scheme that can be used to address devices like cameras, DVRs and others. The scheme includes information for area, device type.</para>
<section>
<title>Overview</title>
<para>Figure A1 shows the order of the four fields in the 20-digit encoding scheme:</para>
<figure>
<title>Fields of the device ID scheme</title>
<mediaobject>
<imageobject>
<imagedata fileref="media/ResourceQuery/image3.svg" contentwidth="93.34mm" contentdepth="27.23mm" />
</imageobject>
</mediaobject>
</figure>
<para>The device ID and ID of other resources should finish the initial configuration in the bottom platform.</para>
</section>
<section>
<title>Field Definitions </title>
<section>
<title>Zone Code</title>
<para>The eight digit zone code is split into four two digit items as shown in Table A1.</para>
<table>
<title>The zone code elements</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="24*" />
<colspec colname="c2" colwidth="24*" />
<colspec colname="c3" colwidth="22*" />
<colspec colname="c4" colwidth="30*" />
<tbody valign="top">
<row>
<entry align="center">
<para>2 digit</para>
</entry>
<entry align="center">
<para>2 digit</para>
</entry>
<entry align="center">
<para>2 digit</para>
</entry>
<entry align="center">
<para>2 digit</para>
</entry>
</row>
<row>
<entry align="center">
<para>Province</para>
</entry>
<entry align="center">
<para>City</para>
</entry>
<entry align="center">
<para>District</para>
</entry>
<entry align="center">
<para>Unit</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
<para>The first six digit is the Administrative Division code, which depends on the location of the Surveillance Center and meets the requirement of GB/T 2260-2007, similar to the post code. For example, the code of city X is 420100.</para>
<para>The unit code is defined by users, such as Police Station etc. It starts from 01, 00 represents the Surveillance Center. </para>
</section>
<section>
<title>Agency Code </title>
<para>Table A2 defines the two digit agency codes.</para>
<table>
<title>Industry Coding</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="10*" />
<colspec colname="c2" colwidth="30*" />
<colspec colname="c3" colwidth="30*" />
<colspec colname="c4" colwidth="31*" />
<thead>
<row>
<entry>
<para>Code Type</para>
</entry>
<entry>
<para>Name</para>
</entry>
<entry>
<para>Subject</para>
</entry>
<entry>
<para>Notes</para>
</entry>
</row>
</thead>
<tbody valign="top">
<row>
<entry valign="middle">
<para>00</para>
</entry>
<entry valign="middle">
<para>Urban Roadway </para>
</entry>
<entry morerows="12" valign="middle">
<para>Government</para>
<para>Offices</para>
</entry>
<entry>
<para>includes urban roadway, commercial avenue, public areas & key areas, etc.</para>
</entry>
</row>
<row>
<entry valign="middle">
<para>01</para>
</entry>
<entry valign="middle">
<para>Society Community</para>
</entry>
<entry>
<para>includes residential districts, buildings, and cyber café, etc.</para>
</entry>
</row>
<row>
<entry valign="middle">
<para>02</para>
</entry>
<entry valign="middle">
<para>Social Security Agency </para>
</entry>
<entry>
<para>includes public security buildings & detention room</para>
</entry>
</row>
<row>
<entry valign="middle">
<para>03</para>
</entry>
<entry valign="middle">
<para>Other Security Agencies</para>
</entry>
<entry />
</row>
<row>
<entry valign="middle">
<para>04</para>
</entry>
<entry valign="middle">
<para>Traffic Roadway </para>
</entry>
<entry>
<para>includes road artery, national roadway & highway</para>
</entry>
</row>
<row>
<entry valign="middle">
<para>05</para>
</entry>
<entry valign="middle">
<para>Traffic Checkpoints </para>
</entry>
<entry>
<para>includes crossroads, E-police, checkpoint & toll gate, etc.</para>
</entry>
</row>
<row>
<entry valign="middle">
<para>06</para>
</entry>
<entry valign="middle">
<para>Traffic Management Agency</para>
</entry>
<entry>
<para>includes Traffic Control office buildings, etc.</para>
</entry>
</row>
<row>
<entry valign="middle">
<para>07</para>
</entry>
<entry valign="middle">
<para>Agency Relates to Traffic Management</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>08</para>
</entry>
<entry>
<para>City Management</para>
</entry>
<entry />
</row>
<row>
<entry valign="middle">
<para>09</para>
</entry>
<entry>
<para>Health & Environmental Management</para>
</entry>
<entry />
</row>
<row>
<entry valign="middle">
<para>10</para>
</entry>
<entry>
<para>Commodity Inspection & Custom</para>
</entry>
<entry />
</row>
<row>
<entry valign="middle">
<para>11</para>
</entry>
<entry>
<para>Education </para>
</entry>
<entry />
</row>
<row>
<entry valign="middle">
<para>12-39</para>
</entry>
<entry />
<entry>
<para>Reserved 1</para>
</entry>
</row>
<row>
<entry valign="middle">
<para>40</para>
</entry>
<entry>
<para>Farming, Forestry, Animal Husbandry & Fishery</para>
</entry>
<entry morerows="16" valign="middle">
<para>Enterprise/Administrative</para>
<para>Institution</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>41</para>
</entry>
<entry>
<para>Mining</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>42</para>
</entry>
<entry>
<para>Manufacturing</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>43</para>
</entry>
<entry>
<para>Metallurgy</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>44</para>
</entry>
<entry>
<para>Electric Power</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>45</para>
</entry>
<entry>
<para>Gas</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>46</para>
</entry>
<entry>
<para>Construction</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>47</para>
</entry>
<entry>
<para>Logistics</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>48</para>
</entry>
<entry>
<para>Postal Services</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>49</para>
</entry>
<entry>
<para>IT</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>50</para>
</entry>
<entry>
<para>Hotels & Catering</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>51</para>
</entry>
<entry>
<para>Financing</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>52</para>
</entry>
<entry>
<para>Real Estate</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>53</para>
</entry>
<entry>
<para>Commercial Services</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>54</para>
</entry>
<entry>
<para>Water Resources Enterprises</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>55</para>
</entry>
<entry>
<para>Entertainment</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>56-79</para>
</entry>
<entry />
<entry>
<para>Reserved 2</para>
</entry>
</row>
<row>
<entry>
<para>80-89</para>
</entry>
<entry />
<entry>
<para>Dwellers Building</para>
</entry>
<entry>
<para>Reserved 3</para>
</entry>
</row>
<row>
<entry>
<para>90-99</para>
</entry>
<entry />
<entry>
<para>Other Entities</para>
</entry>
<entry>
<para>Reserved 4</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
<section>
<title>Device Type Code</title>
<para>Table A3 defines the three digit device type codes.</para>
<table>
<title>Device Type Codes</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="16*" />
<colspec colname="c2" colwidth="53*" />
<colspec colname="c3" colwidth="31*" />
<thead>
<row>
<entry>
<para>Code Value</para>
</entry>
<entry>
<para>Device Type</para>
</entry>
<entry>
<para>Notes</para>
</entry>
</row>
</thead>
<tbody valign="top">
<row>
<entry>
<para>111</para>
</entry>
<entry>
<para>DVR </para>
</entry>
<entry>
<para>111-130: Front-end devices</para>
</entry>
</row>
<row>
<entry>
<para>112</para>
</entry>
<entry>
<para>Video Server</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>113</para>
</entry>
<entry>
<para>Encoder</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>114</para>
</entry>
<entry>
<para>Decoder</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>115</para>
</entry>
<entry>
<para>Video Switching Matrix</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>116</para>
</entry>
<entry>
<para>Audio Switching Matrix</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>117</para>
</entry>
<entry>
<para>Alarm Controller</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>118</para>
</entry>
<entry>
<para>NVR</para>
</entry>
<entry />
</row>
<row>
<entry valign="middle">
<para>119</para>
</entry>
<entry>
<para>Online Information Acquisition Device</para>
</entry>
<entry />
</row>
<row>
<entry valign="middle">
<para>120</para>
</entry>
<entry>
<para>Online Information Acquisition System</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>121</para>
</entry>
<entry>
<para>Checkpoints on Roadway</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>130</para>
</entry>
<entry>
<para>HVR</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>121-129</para>
</entry>
<entry>
<para>Extended Front-end devices</para>
</entry>
<entry />
</row>
<row>
<entry>
<para>131</para>
</entry>
<entry>
<para>Camera</para>