Access the ServerCommandService part of the API

Hello,

I was going through a few topics referring to the GetConfiguration() method provided by the ServerCommandService soap service. I thought that I would have been able to import it in my C# project by importing ServerCommandService.ConfigurationInfo, but it seems that the GetConfiguration method is in fact just written in the TcpVideoViewer sample of the SDK…

My final goal is to get the stream UID that, from what I understood in different topics, can be accessed via the GetConfiguration method.

How should I proceed?

You can autogenerate the c# classes using the wsdl. I am guessing this is what you need.

Try (assuming you are using XProtect Corporate or Expert)

http://localhost/Managementserver/ServerCommandService.svc

http://localhost/Managementserver/ServerCommandService.svc?wsdl

The evidence lock sample has a autogenerated class.

Thank you,

I actually managed to extract the stream ID after tweaking TcpVideoViewer and using the GetConfiguration method written there.

Would there be a reason why sending a GetConfiguration http request wouldnt work for Enterprise and only for Corporate?

Yes, unfortunately it does not work for Xprotect Enterprise. The reason is that this is not implemented in XProtect Enterprise. If you look at the MIP Documentation - Protocol Integration > Architecture > Protocol and Product Support Information - you can see in the table that it is not supported on XProtect Enterprise. There is a comment: XProtect Enterprise, Proffessional and Express uses Image Server to provide configuration via the SystemInfo.xml file.

The Protocol and Product Support Information page is important in pinpointing the differences in the XProtect versions protocol implementations..

Thank you for your answer. Would there be another way to get the substreams from Enterprise ?

I was not able to view the StreamInfo in the SystemInfo.xml for enterprise

Substreams does not exist in Enterprise. The Enterprise family of VMSs only support one live stream.

History:

The multi-stream/substream features was an enhancement to XProtect Corporate in the 4.0 version, the enhancement to XProtect Enterprise was not as big; it was introduced that you can have one stream live and another stream recorded, prior to the enhancement this had to be the same..

I pointed to the table of differences in the protocols, here I would like to point to the table of functions supported in general - https://www.milestonesys.com/globalassets/materials/documents/product_updates/Milestone_XProtect_Full_VMS_Comparison_Chart_EN_Feb_2017.pdf

Hi @Bo Ellegård Andersen (Milestone Systems)

We have checked this document about the support for multi-stream cameras…

https://www.milestonesys.com/globalassets/materials/documents/product_updates/Milestone_XProtect_Full_VMS_Comparison_Chart_EN_Feb_2017.pdf

Here it states that Dual stream (live and recording) per camera is supported on all Xprotect versions.

All we need to do is be able to choose which of the camera streams we receive via the API. I’m not sure if this is the same as sub streams or not - but our customers are asking us to be able to specify which of the camera streams we run analytics on.

So the original question is really: how can we retrieve the different camera streams across all versions of Xprotect using the MIP APIs?

Thanks

Ben

My answer is correct.

The table says..

Dual stream (live and recording) per camera ✓ ✓ ✓ ✓ ✓ ✓ Multi-live streaming - - - - ✓ ✓

(I realize it might make little sense without column information, please see the table again to understand what I refer to.)

In XProtect Express, Professional and Enterprise there is one live stream (and it is possible to have another stream being recorded).

In XProtect Expert and Corporate there is multiple live streams.

There is only one live stream in XProtect Express, Professional and Enterprise and because of this there is no StreamId supported (it is not needed).

Now the behavior is equivalent if you use a camera in XProtect Express, Professional and Enterprise or use a camera in XProtect Expert and Corporate that does not support multiple live streams, not all camera / camera drivers support multiple live streams in XProtect Expert and Corporate.

@Bo Ellegård Andersen (Milestone Systems) Thanks for the response, but I still have a question.

Can you clarify if there’s any way to request via the MIP API a specific stream from a multi-stream camera in Express, Pro and Enterprise?

If the answer is no, then that’s fine - but we need to clarify to our customers where in the integration the limitations lie.

Thanks!

Ben

No.

In other words..

When setting up the camera (in the Management Application) you choose one stream to be used for live streaming by the server. In MIP (or protocols) and in Milestone clients it is then given that it is that one stream you can see. [Express, Pro and Enterprise]

Ok. Thanks for clarifying. It’s clear to us now.

On this topic - a common use case for analytics integrations is to process the lower resolution stream from a camera. Often this is the stream which is being recorded (not the live). Processing the live stream adds extra burden in terms of bandwidth and video decoding.

If we could access the secondary stream from cameras via the MIP sdk then we can support a higher density of analytics channels per server.

I find it very positive that you highlight the high usabilty of this feature.

I believe this was also part of Milestones reasoning when the multistream enhancement was developed.