Introduction
Introduction to MIP SDK 2025 R2
Discontinuation announcements
-
From MIP SDK 2025 R3
VideoOS.Platform.SDK.RemoteRetrievalTasks.dll
includingRetrievalTaskManager
will no longer be part of the MilestoneSystems.VideoOS.Platform.SDK NuGet package. We recommend using the RESTful API orVideoOS.Platform.ConfigurationItems.Camera.RetrieveEdgeStorage
instead. -
MIP message
MessageId.Server.NewAlarmAsEventCommand
is no longer supported. Instead, useMessageId.Server.NewEventCommand
. -
The endpoint
/ServerAPI/ServerCommandService.asmx
has been removed. Instead, use/ManagementServer/ServerCommandServiceOAuth.svc
or/ManagementServer/ServerCommandService.svc
. -
The view items
TextViewItem
andImageViewItem
have been deprecated and removed. These have been replaced by the newTextImageViewItem
, which combines text and image functionality while also being structured as a MIP plug-in. - The MIP SDK templates are no longer supported for Visual Studio 2017. They are now only available for Visual Studio 2019 and later versions.
Component integrations
-
DBExporter
now has a property,FailOnInvalidSignature
, that if set to true (default) will cause the export to fail if signing is enabled and any sign errors are detected in the data during export. If the property is set to false the export will succeed but the propertySignErrorsDetected
will be set once export is completed.
Plug-in integrations
- Previously, the use of multiple user controls was only supported for Admin plugins that could add multiple items (ItemsAllowed.Many). This functionality has now been extended to support plugins that can add only a single item (ItemsAllowed.One).
Text and Image View Item
-
A new
TextImageViewItem
has been introduced, replacing both theTextViewItem
andImageViewItem
. -
Previous
TextViewItems
andImageViewItems
will be migrated to the new view item.
Access Control
-
ACUnit
has a new string property calledGisPosition
. When set, this property represents the geographical coordinates of theACUnit
in the format "latitude, longitude
" -
ACUnit
has two additional constructors. One which can now also acceptlatitude
andlongitude
arguments and one which can acceptlatitude
,longitude
andunsupportedCommandTypeIds
together. Passing bothlatitude
andlongitude
to the newACUnit
constructors will set theGisPoint
property of theACUnit
class. Alternatively theGisPoint
property can also be set by calling theSetPosition()
method of theACUnit
class and passinglatitude
andlongitude
as parameters. -
The coordinates of Access Control units can be synchronised with the Access Control System, if the plugin overrides the
AccessControlUnitPositionChanged
function in theACConfigurationManager
implementation. - If the system does not support coordinates, then synchronization should not be implemented and the changing of coordinates in Smart Client will not affect the plugin.
RESTful APIs
-
RESTful Config API:
- Events for Access Control, Transact, LPR and System Monitor are now supported in alarm definitions.
- Tasks for applying content of another view to a view, for clearing a view, and for clearing a view item has been added to the
views
endpoint. - View items returned by the
views
endpoint now contains anid
property.
WebRTC
-
Support for Audio streaming in WebRTC.
-
Support for audio has been added to the WebRTC streaming. Streaming now supports audio or video or both. The
includeAudio
parameter is used to specify whether audio should be included in the stream. The default value istrue
. If set tofalse
, only video will be streamed.
-
Support for audio has been added to the WebRTC streaming. Streaming now supports audio or video or both. The
-
CameraId changed to deviceId in WebRTC.
-
The parameter
cameraId
has been replaced with the parameterdeviceId
. ThedeviceId
can be either a cameraId or a microphoneId.
-
The parameter
-
The request object for WebSockets-based signaling has been aligned with the ONVIF protocol. The
ApiVersion
parameter is deprecated and has been replaced withjsonrpc
. The version ofjsonrpc
has been updated from1.0
to2.0
. This is done to follow the JSON-RPC 2.0 specifications.
Samples
The following samples have been added:
- Admin Multi-tab: A sample that demonstrates how to create a multi-tab plug-in that can be used to display multiple tabs in the Admin client.
The following samples have been changed:
-
DemoAccessControlPlugin
has been extended to show support for Latitude and Longitude coordinates for theACUnit
class and to show how to support coordinate synchronisation. -
RemoteretrievalTask
has been changed to useVideoOS.Platform.ConfigurationItems.Camera.RetrieveEdgeStorage
andVideoOS.Platform.ConfigurationItems.ManagementServer.LoadTasks
instead of RetrievalTaskManager. -
DemoACServerApplication
has been extended to show support for Latitude and Longitude door coordinates. When adding or editing a door you can now insert latitude and longitude coordinates. The coordinates of each door can also be seen on the door management screen. TheDemoACServerApplication
is supplied with theDemoAccessControlPlugin
. Changing the coordinates of a door in the Smart Client is also reflected in the coordinates of doors in the application. -
ExportSample
has been updated to showcase the two newDBExporter
properties,FailOnInvalidSignature
andSignErrorsDetected
. -
VideoPreview
has been updated to work correctly in floating windows and other workspaces than the main one. -
WebRTC - JavaScript client
has been extended to support audio streaming.
Fixed issues
-
If multicast was enabled for a camera, the
ImageViewerWpfControl
would fail showing the video and a log stating "Error: MulticastConfig (): The calling thread cannot access this object because a different thread owns it." would be made. -
When a view item plug-in defined an embedded camera either by setting the
EmbeddedCameraFQID
setting in theViewItemManager.Properties
dictionary or adding it toViewItemManager.RelatedCameraIds
, a related microphone or speaker of the camera would not automatically be selected in the Smart Client when the view item was selected. -
For some plug-in types the plug-in binaries were not included in Smart Client exports despite
PluginDefinition.IncludeInExport
being set to true. - Image viewers in floating windows and other workspaces than the primary would not always follow the correct mode of the workspace.