I’m building an app which uses the Zoom Room SDK for controlling our Zoom Rooms. Great doc, great quick start tutorial, everything works, thank you
But… I’m now realizing something that is never mentioned in the doc, which is that activation codes expire after 10 days. What am I supposed to do if the hardware on which my app is running reboots? I can’t possibly visit every instance to re-pair it with a new code every time.
I feel like I’m missing something obvious, that others have must have used the SDK before to build integrations, and that there must be a way to survive a reboot after 10 days. Could you please point me in the right direction? I’ve searched everywhere to no avail.
I did play with the RetryToPairRoom() and CanRetryToPairLastRoom() calls to see if they’d allow me to re-pair with a room but neither helped in my testing. I’m not sure under what circumstances it’s allowable to RetryToPair.
These are likely a red herring anyway as to my knowledge they don’t write something to disk that would survive a reboot.
This might turn into a bug report. I dived deep, from what I gather, the libZRCSdk library is keeping track of what Zoom Rooms were paired with locally. And loads that state automatically when the app I built relaunches.
So I looked everywhere for local state saved to disk. There is indeed a directory which looks promising ~/.zoom which contains 2 directories named data & log. ~/.zoom/data/zoomus.zmdb.default.noenc.rlock.db is a SQLite database with only 1 empty table called “experiment”. There’s a bunch of other *.log files in there, nothing really that looks like saved state.
I diffed my whole filesystem to see if libZRCSdk.so maybe saved state somewhere else to no avail. I straced the app to see what file handles might be getting used to no avail.
I suspect that the libZRCSdk.so library is either unable to save state, or unable to summon it back. I’m using version 6.4.0 of the library, compiled on x86_64 Ubuntu 24.04.3, pretty vanilla stack. Everything compiles and operates well, I can pair with rooms, send commands et cetera. My code is very largely based on the Demo provided with the download (a huge help!).
The only thing is that I need to regenerate activation codes every 10 days because the libZRCSdk.so can’t seem to save or load previous pairing.
If it’s any help, even within the same session (app not restarting), if I just pair with a room and run m_roomService→CanRetryToPairLastRoom(), it returns false. I can list the room I’m paired with too, and it has a property of canRetryToPair set to false.
As far as I understand, libZRCSdk.so is supposed to take care of that state automatically, but it doesn’t seem to be happening in my case.
line 32 of ZRCSDKSink.h, OnGetAppContentDirPath() needs to be populated and will not default to something in ~/.zoom like other things. With it set to a directory, said directory gets populated with another SQLite database, and libZRCSdk.so is able to keep state across reboots.