PepperDash.ZoomRoom.Sdk 1.1.0-feat-test-public-nuget.3

This is a prerelease version of PepperDash.ZoomRoom.Sdk.
dotnet add package PepperDash.ZoomRoom.Sdk --version 1.1.0-feat-test-public-nuget.3
                    
NuGet\Install-Package PepperDash.ZoomRoom.Sdk -Version 1.1.0-feat-test-public-nuget.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PepperDash.ZoomRoom.Sdk" Version="1.1.0-feat-test-public-nuget.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PepperDash.ZoomRoom.Sdk" Version="1.1.0-feat-test-public-nuget.3" />
                    
Directory.Packages.props
<PackageReference Include="PepperDash.ZoomRoom.Sdk" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add PepperDash.ZoomRoom.Sdk --version 1.1.0-feat-test-public-nuget.3
                    
#r "nuget: PepperDash.ZoomRoom.Sdk, 1.1.0-feat-test-public-nuget.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package PepperDash.ZoomRoom.Sdk@1.1.0-feat-test-public-nuget.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=PepperDash.ZoomRoom.Sdk&version=1.1.0-feat-test-public-nuget.3&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=PepperDash.ZoomRoom.Sdk&version=1.1.0-feat-test-public-nuget.3&prerelease
                    
Install as a Cake Tool

PepperDash.ZoomRoom.Sdk

C# P/Invoke wrapper for the Zoom Rooms Controller SDK (ZRC SDK), targeting Crestron control systems running ARM32 Linux (e.g. CP4N).

Requirements

Requirement Details
.NET net8.0
Runtime linux-arm (ARMv7-A hard-float)
Device Crestron CP4N or similar ARM32 Linux Crestron appliance
ZRC SDK libZRCSdk.so installed at /usr/lib/ on the device (ZRC SDK 6.5.5+)

Installation

dotnet add package PepperDash.ZoomRoom.Sdk

The NuGet package includes the compiled C wrapper (libzrcsdkwrapperpdt.so) as a runtimes/linux-arm/native/ asset. The proprietary libZRCSdk.so must be separately installed on the target device.

Quick Start

using PepperDash.ZoomRoom.Sdk;

// Optionally override the library search path (useful for testing outside Crestron)
// ZrcSdk.SetLibraryPath("/path/to/libs");

var sdk = new ZrcSdk();

sdk.Initialized         += (s, e) => Console.WriteLine($"SDK initialized: {e.ErrorCode}");
sdk.PairRoomResult      += (s, e) => Console.WriteLine(ZrcSdkCodes.GetPairRoomResultDescription(e.ErrorCode));
sdk.ConnectionStateChanged += (s, e) => Console.WriteLine(ZrcSdkCodes.GetConnectionStateDescription(e.ErrorCode));
sdk.MeetingStatus       += (s, e) => Console.WriteLine(ZrcSdkCodes.GetMeetingStatusDescription(e.ErrorCode));

// Initialize — blocks until IZRCSDK::CreateInstance() returns, then starts the HeartBeat loop
bool ok = sdk.Initialize("/user/zrcsdk");

if (sdk.CanRetryToPairLastRoom())
    sdk.RetryToPairRoom();          // reconnect with stored credentials
else
    sdk.PairRoomWithActivationCode("XXXXXX");  // first-time pair

// Clean shutdown — flushes credentials to disk, calls IZRCSDK::DestroyInstance()
sdk.Dispose();

On Crestron Systems

Subscribe to CrestronEnvironment.ProgramStatusEventHandler to ensure clean shutdown:

CrestronEnvironment.ProgramStatusEventHandler += (type) =>
{
    if (type == eProgramStatusEventType.Stopping)
        sdk?.Dispose();
};

Note: All writable paths on Crestron devices (/simpl/app, /user, /var/volatile) are mounted noexec. The library loads itself via memfd_create + dlopen(/proc/self/fd/N) to bypass this restriction automatically.

Key APIs

Lifecycle

Method Description
Initialize(configPath) Start SDK; HeartBeat loop runs until Dispose()
Dispose() Stop HeartBeat, flush credentials, destroy native instance
GetSDKVersion() Returns the ZRC SDK version string
SetLibraryPath(dir) (static) Override native library search directory

Pairing

Method Description
CanRetryToPairLastRoom() Returns true if stored credentials are available
RetryToPairRoom() Reconnect without an activation code
PairRoomWithActivationCode(code) First-time pair
UnpairRoom() Unpair and clear credentials

Meeting Control

Method Description
StartInstantMeeting() Start a PMI/instant meeting
JoinMeeting(number) Join by meeting number
JoinMeetingWithURL(url) Join via invite URL
StartMeetingWithHostKey(key) Start a scheduled meeting
EndMeeting() End for all (host only)
LeaveMeeting() Leave (meeting continues)
SendMeetingPassword(pw) Respond to MeetingNeedsPassword

Audio / Video / Recording

SetAudioMute(bool) · SetVideoState(bool) · StartRecording() · StopRecording() · PauseRecording() · ResumeRecording()

Zoom Room Control System (ZRCS)

IsZRCSEnabled() · OpenRoomControls(bool) · ControlZRCSDevice(...) · ExecuteZRCSScene(sceneID)

Error Codes

Use the ZrcSdkCodes static class to convert integer codes to descriptions:

ZrcSdkCodes.GetErrorDescription(code)
ZrcSdkCodes.GetPairRoomResultDescription(code)
ZrcSdkCodes.GetMeetingStatusDescription(code)
ZrcSdkCodes.GetConnectionStateDescription(code)
ZrcSdkCodes.GetExitMeetingReasonDescription(reason)

License

MIT — see LICENSE

The ZRC SDK itself (libZRCSdk.so) is proprietary software © Zoom Video Communications, Inc.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on PepperDash.ZoomRoom.Sdk:

Package Downloads
PepperDash.Essentials.Plugins.Zoom.Room

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.0-feat-test-public-nuget.3 94 8/28/2026
1.1.0-feat-test-public-nuget.2 113 8/21/2026
1.1.0-feat-test-public-nuget.1 89 8/21/2026
1.0.1-feat-test-public-nuget.1 70 8/21/2026