Callback to OnSessionJoin is never received

Video SDK Type and Version

zoom-video-sdk-windows-1.10.0
Working from the Sample-Libs\x64\demo\videosdk_demo project
Running on Windows 10, IDE is Rider

Description

Working from the videosdk_demo example, I’ve created a project that compiles to a dll by exporting C functions.
Unlike the demo, this project does not link to DuiLib64.lib, SDL2.dll, ZoomvideosdkRender.lib.

Next I’ve created a simple C# Core (net7.0, C# 11.0) console project that links to this dll.
The console application builds and launches without issue (no missing dll files).
Following the steps in the documentation (and the demo) the app creates and joins a session.
However… I never receive a callback to onSessionJoin().

Error?

There are no error messages.
The app just waits without onSessionJoin() being invoked.

Troubleshooting Routes
Confirmed that every function described in the documention was invoked.
Confirmed that the ZoomVideoSDKSessionContext matched videosdk_demo
Confirmed that the returned IZoomVideoSDKSession state matched videosdk_demo

  • The returned session method getSessionID() yields an empty string in both cases
    Confirmed that onSessionJoin() really IS invoked in the case of videosdk_demo
    Tried debugging videosdk_demo program to look for undocumented steps. Added steps to:
  • Select camera, speaker, mic
  • Unmute video and audio
  • Registered an instance of IZoomVideoSDKRawDataPipeDelegate and confirmed that video frames (from local camera) are received
  • Tried connecting videosdk_demo to same session name as the console app. Only one user was present in the session.
  • Confirmed that windows firewall is not blocking the app

GUESS: There is some required step in addition to the documented step: session = video_sdk_obj->joinSession(session_context);

How To Reproduce
I can share code on request.
I have tried to set this up twice now, so my guess would be that you can reproduce the issue by

  • Creating a dll with the same restricted linking (no GUI)
  • Create a C# project that uses functions to connect to a session

Update: I’ve tried creating a C++ console app that goes through the same steps as the dll and C# console app.
Results: the C++ console app fails in the same way. So the issue is not with the dll - C# steps.

As with the regular app I have confirmed that every call specified in the documentation is invoked with the expected parameters. These are, in order:

  • m_pVideoSDK = CreateZoomVideoSDKObj();
  • m_pVideoSDK->initialize(initParams);
  • m_pVideoSDK->addListener(this);
  • m_pVideoSDK->joinSession(sessionContext);

Also, as with the dll, the listener receives no error message and no password is requested.

In terms of code, the class ZoomVideoSDKMgr is used as is. However, the CMainFrame class is replaced by a simpler class zoom_video_sdk_delegate that does nothing other than print events to the console.

Finally, in case this helps, here is the JWT used for a test.
NOTE: This JWT does work when used with the demo app that has a GUI.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBfa2V5IjoieG5WdTlPUkpSdENsMl9fdXlkamhNUSIsInRwYyI6IlRlc3RTZXNzaW9uIiwicm9sZV90eXBlIjoxLCJ1c2VyX2lkZW50aXR5IjoiVGVzdFVzZXIiLCJzZXNzaW9uX2tleSI6IiIsInZlcnNpb24iOjEsImlhdCI6MTcwNDI1MTgyOCwiZXhwIjoxNzA0MjU5MDI4fQ.BGufSwmYacxYQ8sEqM-90mvMmSnef7Y4YkXj5CHivXU

GUESS: Console applications are not able to use the zoom video sdk?

Another update: I tried using the dll from a C# with a GUI.
Where the console app found 1 user when invoking:
ZoomVideoSDKMgr::GetInst().GetAllUsers();
The C# app with GUI, which invokes the dll methods with identical arguments found 0 users.