I should add that it works to use the built in push to talk functionality in the smart client. The exception is thrown when using OutgoingSpeakerController in a plugin.
I made a Smart Client plug-in using OutgoingSpeakerController. It works for me also with the combination of a Smart Client 20191 and XProtect Corporate 2018R3 server..
Do you have a plugin (minimal implementation perhaps) which you can share with me?
Thanks for your test Bo. The problem is that “scheme” seems to be a new property in the ServerID class. Since that property wasn’t present before, the OutgoingSpeakerController will fail when we use an old FQID where the scheme property is set to null. That’s because it doesn’t exist in the FQID copy that we have read from our settings.
I guess one solution could be to check if scheme is null and read which scheme the current device uses and set that property before using the OutGoingSpeakerController.
I have been looking into which, but are having some trouble reproducing. Could you please clarify how you are storing the FQID of the speaker?
I tried serializing one to a string (using the Serialize() method) on 2018 R3 SC and then deserializing by passing the string to the FQID constructor on 2019 R1 SC and the Scheme is set to the default (HTTP).
The serializer we need to use (DataContractSerializer), doesn’t run the constructor of the objects. Can you set a default value to the scheme property and it should solve the problem?