Introduction
Introduction to MIP SDK 2025 R2
Discontinuation announcements
-
From MIP SDK 2025 R3
VideoOS.Platform.SDK.RemoteRetrievalTasks.dllincludingRetrievalTaskManagerwill no longer be part of the MilestoneSystems.VideoOS.Platform.SDK NuGet package. We recommend using the RESTful API orVideoOS.Platform.ConfigurationItems.Camera.RetrieveEdgeStorageinstead. -
MIP message
MessageId.Server.NewAlarmAsEventCommandis no longer supported. Instead, useMessageId.Server.NewEventCommand. -
The endpoint
/ServerAPI/ServerCommandService.asmxhas been removed. Instead, use/ManagementServer/ServerCommandServiceOAuth.svcor/ManagementServer/ServerCommandService.svc. -
The view items
TextViewItemandImageViewItemhave 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
-
DBExporternow 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 propertySignErrorsDetectedwill 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
TextImageViewItemhas been introduced, replacing both theTextViewItemandImageViewItem. -
Previous
TextViewItemsandImageViewItemswill be migrated to the new view item.
Access Control
-
ACUnithas a new string property calledGisPosition. When set, this property represents the geographical coordinates of theACUnitin the format "latitude, longitude" -
ACUnithas two additional constructors. One which can now also acceptlatitudeandlongitudearguments and one which can acceptlatitude,longitudeandunsupportedCommandTypeIdstogether. Passing bothlatitudeandlongitudeto the newACUnitconstructors will set theGisPointproperty of theACUnitclass. Alternatively theGisPointproperty can also be set by calling theSetPosition()method of theACUnitclass and passinglatitudeandlongitudeas parameters. -
The coordinates of Access Control units can be synchronised with the Access Control System, if the plugin overrides the
AccessControlUnitPositionChangedfunction in theACConfigurationManagerimplementation. - 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
viewsendpoint. - View items returned by the
viewsendpoint now contains anidproperty.
WebRTC
-
Video codec support has been extended to include both MJPEG and H.265 streaming in WebRTC, as well as the existing H.264.
- MJPEG: Support video with only YUV components.
- H.265: Support for single NAL unit packets, aggregated packets as well as fragmentation unit packets. Does not support PACI packets.
-
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
includeAudioparameter 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
cameraIdhas been replaced with the parameterdeviceId. ThedeviceIdcan be either a cameraId or a microphoneId.
-
The parameter
-
The request object for WebSockets-based signaling has been aligned with the ONVIF protocol. The
ApiVersionparameter is deprecated and has been replaced withjsonrpc. The version ofjsonrpchas been updated from1.0to2.0. This is done to follow the JSON-RPC 2.0 specifications.
Samples
The following samples have been added:
-
WebRTC - .NET Clienthas been added to showcase a .NET solution for WebRTC streaming MJPEG using SIP Sorcery. - 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:
-
DemoAccessControlPluginhas been extended to show support for Latitude and Longitude coordinates for theACUnitclass and to show how to support coordinate synchronisation. -
RemoteretrievalTaskhas been changed to useVideoOS.Platform.ConfigurationItems.Camera.RetrieveEdgeStorageandVideoOS.Platform.ConfigurationItems.ManagementServer.LoadTasksinstead of RetrievalTaskManager. -
DemoACServerApplicationhas 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. TheDemoACServerApplicationis supplied with theDemoAccessControlPlugin. Changing the coordinates of a door in the Smart Client is also reflected in the coordinates of doors in the application. -
ExportSamplehas been updated to showcase the two newDBExporterproperties,FailOnInvalidSignatureandSignErrorsDetected. -
VideoPreviewhas been updated to work correctly in floating windows and other workspaces than the main one. -
WebRTC - JavaScript clienthas been extended to support audio streaming.
Fixed issues
-
If multicast was enabled for a camera, the
ImageViewerWpfControlwould 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
EmbeddedCameraFQIDsetting in theViewItemManager.Propertiesdictionary 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.IncludeInExportbeing set to true. - Image viewers in floating windows and other workspaces than the primary would not always follow the correct mode of the workspace.
Bug-fix maintenance release 25.2.2
There is a new release of the MilestoneSystems.VideoOS.Platform.SDK NuGet package. This release includes the following bug fixes:
ImageViewerWpfControlandImageViewerControlwould in some cases show just a black image and add the following to the logs: "Error: MulticastConfig(): The calling thread cannot access this object because another thread owns it." This issue has been fixed.
There is a new release of the MilestoneSystems.VideoOS.Platform NuGet package. This release includes the following bug fixes:
RetrieveEdgeStoragewould remove milliseconds from both start and stop times before retrieving data from the Event Server. This has now been fixed.
Bug-fix maintenance release 25.2.2
There is a new release of the MilestoneSystems.VideoOS.Platform.SDK NuGet package. This release includes the following bug fixes:
ImageViewerWpfControlandImageViewerControlwould in some cases show just a black image and add the following to the logs: "Error: MulticastConfig(): The calling thread cannot access this object because another thread owns it." This issue has been fixed.
There is a new release of the MilestoneSystems.VideoOS.Platform NuGet package. This release includes the following bug fixes:
RetrieveEdgeStoragewould remove milliseconds from both start and stop times before retrieving data from the Event Server. This has now been fixed.
Bug-fix maintenance release 25.2.3
There is a new release of the MilestoneSystems.VideoOS.Platform.SDK NuGet package. This release includes the following bug fixes:
ImageViewerWpfControlandImageViewerControlwould in some cases end up in a deadlocked state causing the application to freeze. This issue has been fixed.ImageViewerWpfControldid not load properly when used withMultiEnvironmentand would just show "ImageViewerWpfControl Implementation not loaded". This has now been fixed.SystemStatusClientwould in some cases not automatically reconnect if connection to the recording server was lost. This issue has been fixed.
There is a new release of the MilestoneSystems.VideoOS.Platform NuGet package. This release includes the following bug fix:
Configuration.Instance.SaveItemConfigurationwould in some cases fail with the error "Error Saving Plugin Item: PUT Unexpected statuscode BadRequest". This has now been fixed.