Copyright © TANDBERG 2008
Reference Guide Version 3.0 rev 1.0
60
Appendix C - Revision Numbers
Note
: This feature is available from API version 2.4 onwards. An application can determine the API version
supported by a device from the
apiVersion
value returned in the response to a
device.query
request.
In order to reduce the size of responses when querying the MCU, the following methods support a “revision
number” system:
f
participant.enumerate
f
conference.enumerate
f
autoAttendant.enumerate
When the MCU responds to a method that supports revision numbers, it returns an extra integer field called
“currentRevision”. The following is an example of such a field:
<member>
<name>currentRevision</name>
<value>
<int>18</int>
</value>
</member>
The revision number is a monotonically increasing value that increases every time any query is made on the
MCU via the API. In order to reduce the size of subsequent query responses, the parameter “lastRevision” may
be passed in as part of a request; for example:
<member>
<name>lastRevision</name>
<value>
<int>18</int>
</value>
</member>
This indicates to the MCU that only records that have changed since this revision number should be returned.
For example, in participant.enumerate, if a “lastRevision” parameter is provided, then the enumeration
response will only include participants that have changed since this revision.
Note that when using revision numbers with enumerate methods, the same “lastRevision” parameter should be
used for each stage of the enumeration, even though a greater “currentRevision” parameter will be returned at
each stage. Not doing so could result in records which have changed not being returned. Likewise having
completed an enumeration, the only “currentRevision” parameter which should be stored is the one that was
returned with the first stage of the enumeration. This is the revision number that should be used as the
“lastRevision” parameter next time an enumeration cycle is started.
Using the same revision numbers throughout enumerations is necessary to ensure that all records that have
changed are reported, but it does mean that a record may be reported more than once occasionally when there
has only been one change to it.
C.1
Discovering record removal
The problem with only returning records in responses when they have changed is that if a record is removed
there is no way for the client to distinguish between it being removed and just not having changed.