Introduction
Introduction to MIP SDK 2025 R3
Discontinuation announcements
-
As previously announced, from MIP SDK 2025 R3
VideoOS.Platform.SDK.RemoteRetrievalTasks.dllincludingRetrievalTaskManageris no longer part of the MilestoneSystems.VideoOS.Platform.SDK NuGet package. We recommend using the RESTful API orVideoOS.Platform.ConfigurationItems.Camera.RetrieveEdgeStorageinstead. -
VideoOS.Platform.SDK.MultiUserEnvironment.CreateUserContext(IMipTokenCache)andVideoOS.Platform.SDK.MultiUserEnvironment.CreateUserContext(string, IIdpTokens)methods have been deprecated. UseVideoOS.Platform.SDK.MultiUserEnvironment.CreateUserContext(IMipTokenCache, string)instead.
Component integrations
-
Added Milestone Federated Architecture support in
VideoOS.Platform.SDK.EnvironmentandVideoOS.Platform.SDK.MultiUserEnvironmentwhen authenticating with OAuth tokens issued by an external IDP.
To utilize this functionality, use the following methods:VideoOS.Platform.SDK.Environment.AddServerOAuth(bool, Uri, IMipTokenCache, bool)withmasterOnlyset to false.VideoOS.Platform.SDK.MultiUserEnvironment.CreateUserContext(IMipTokenCache, string)withauthenticationTypeset toExternal.
- Database exports have a new format. Any exports made with MIP SDK 2025 R3 cannot be viewed using a Smart Client 2025R2 or older. Old exports can be viewed using Smart Client 2025R3.
Potentially breaking changes:
Plug-in integrations
- Simulators have been added and the code for Demo Driver Device and Demo Access Control Server Application is now available. The code is placed with the plugin samples in a subfolder called Simulators. In github it can be found here
-
We've added property validation when saving the access control configuration in the Management Client, so it is recommended to implement credential validation on the AccessControl plugin side in the
ValidateProperties()method. This will prevent saving changes when the user enters an incorrect password. If the plugin returns an error message for an invalid password, it will be displayed to the end user in the Management Client.
RESTful APIs
-
RESTful Config API:
- Added support for managing access control groups, their members, and security permissions on groups and individual items
- Added extra parameters to the effectivePermission endpoint with filtering on role id or user id
- Added new endpoint to support bulk changes of permissions, see rolePermissions
-
RESTful Control API:
- Added support for controlling AUX ports
- Added support for reserving and releasing PTZ sessions
- Added support for triggering outputs
- Added support for starting and stopping recording of streams (Video, Microphone, Speaker, Metadata)
- Added support for starting and stopping patrolling profiles
-
RESTful Data API:
- Added support for getting a single video frame as JPEG
- Added support for getting list of recording sequences
- Added device name to the bookmark result
WebRTC
Support for both MJPEG and H.265 streaming in WebRTC.- MJPEG: Support video with only YUV components.
- H.265: Support for single NAL unit packets, aggregated packets, and fragmentation unit packets. PACI packets aren't supported.
- We now support the ONVIF WebRTC subprotocol "webrtc.onvif.org". It is still possible to use the WebSocket connection without specifying a subprotocol.
- The ONVIF WebSocket implementation has been updated to handle SDP in the correct format. We now send and expect to receive the raw SDP value, rather than a JavaScript JSON object. Our WebRTC JavaScript sample has also been updated to send and receive the raw SDP.
- The ONVIF WebSocket implementation has been updated to send and receive Ice Candidates in the correct JSON format. We are now sending JSON objects instead of a string containing a JSON Object.
- The ONVIF WebSocket implementation now correctly sends and receives error messages. Messages are now formatted according to the ONVIF WebRTC specification.
Samples
The following samples have been changed:
- WebRTC Javascript sample has been updated to implement the ONVIF Websocket protocol after the changes.
-
MultiUserEnvironmenthas been updated to support authentication with the XProtect server using OAuth tokens issued by an external IDP. - The Access Control Demo Plugin has been updated to demonstrate how password validation works when saving the Access Control configuration in the Management Client.
Fixed issues
- DELETE command did not work for the RecordingServers objects in the REST API. For older versions POST with ?task=RemoveRecordingServer on the /RecordingServers level can be used.