Start a meeting for a non-logged in or API user

To start a meeting, prepare your meeting number and set whether to start with audio or video. Pass this information to premeeting::GetPreMeetingToolkit()->StartMeeting.

StartMeetingParam param;
param.meetingNumber = 1234567890LL;
param.isNoAudio = false;
param.isNoVideo = false;
bool submitted = premeeting::GetPreMeetingToolkit()->StartMeeting(
    param,
    [](const BaseResult& result) {
        // handle result (result.error_code)
    }
);

Get the meeting or webinar status

Implement OnMeetingStatusChanged on your IZMToolSuiteProxyListener listener that you passed to ZMToolSuiteProxy::SetToolSuiteProxyListener.

class MyEventListener : public ZMToolSuiteProxy::IZMToolSuiteProxyListener {
public:
    void OnMeetingStatusChanged(ZMToolSuiteProxy::ZMToolSuiteMeetingStatus status) override {
        // handle status
    }
    // implement other required listener methods...
};

To get the current state, you can also use meeting::GetMeetingToolkit(...)->GetMeetingStatus().

ZMToolSuiteProxy::ZMToolSuiteMeetingStatus status =
    meeting::GetMeetingToolkit()->GetMeetingStatus();