After reading this:
and watching this:
I have come to this understanding:
Cameras are servers, as long as they do not access data on the microsoft server. The vms application is the client, accessing resources on the camera. When the vms is setting the time on the camera, the vms is doing so as a client application. When the vms is recording video, it is acting as a client, using the camera as a rtsp server.
From this, I assume I would not need a device CAL for any camera, as long as the camera does not request ip address, dns lookups, time or any other data from the windows server.
On the vms client side, I had misunderstood the point of the device CAL. I need a CAL to access data from the vms server, because it will be accessing data from a windows server. But I am not forced to buy one CAL for each user. If they all access the vms from one computer, then I can buy one CAL for that computer. Any user accessing the vms from that computer, will be licensed trough that computers device CAL.
To keep costs down, I would have to limit the number of devices that access the vms. This means, that features like mobile phone access and roaming access will be costly. For instance only licensing a video wall, the computers of investigators, and maybe a shared phone for the security guards, would keep costs down. Allowing every security guard to access the vms server trough their own personal phone, which would be more efficient, will cost more, and maybe open up user CALs as a better option.
As for using a client OS, like windows 7 or 10 for a vms, would be ok. But only as long as the vms server and vms client is on the same computer. So only one way to access the video. No networked clients, and no phones.
Even though this seems like a lot easier and cheaper than I first thought, I think I'll still go with Linux as server OS when possible. This licensing stuff makes pricing unpredictable. And a linux vms would be competitive simply by the fact that they would not have the whole windows server CAL problem. Maintaining a linux server is just as simple as maintaining a windows server, when its only role is working as an OS for the vms server.
So I'm hoping more mainstream vms makers start making linux versions of their product. Having only one name on the list, does not really make it a list...