Perl SDK installation

Zoom supports a Perl SDK that provides higher-level constructs than the regular Zoom Web/Java/command line APIs. This allows developers to integrate with Zoom using the powerful Perl scripting language on any OS platform (Windows, Mac, Linux). The automation developed using the Perl SDK can be used with Zoom Workflow Auto Tasks, Zoom Hot Folder pre/post hooks, Archive pre/post hooks, Check-in pre/post hooks, custom converters etc.

Target Audience

The Perl SDK is targeted at Perl developers with at least 3 years+ experience working with Perl.  If this is your first-time automating using Perl, take the help of an experienced Perl user to complete the steps below.

Version check

Linux and Mac have Perl already bundled with their OS. To check Perl version on any OS, type in the Command Prompt / Terminal or directly in the command line:

perl -v

This will display the Perl version in use. For Zoom, we need version 5.8 and above. To install the recommended version, follow the steps below.

Before installing the SDK

On Linux, it is a lot easier to setup Perl SSL module using yum instead of CPAN. Please use this command:

$ sudo yum install perl-Net-SSLeay

Perl Installation

  1. Minimum Perl Version Supported: 5.8+. Please ensure your Perl distribution is up to date.
  2. For Windows, download and install the Strawberry Perl distribution. For other OS, get the latest Perl version from https://www.perl.org/get.html.
    Use Strawberry Perl 5.24.1.1 for Windows as this has been tested and verified to work with Zoom.
  3. There are a number of Perl modules that the SDK functions depend upon. Please install the following Perl modules for maximum compatibility with the SDK lib modules:
    Config
    Config::IniFiles
    Cwd
    Crypt::SSLeay
    Data::Dumper
    Data::UUID
    DateTime::Format::Strptime
    Encode
    Encode::Locale
    Error
    Fcntl
    File::Basename
    File::Copy
    File::Find
    File::Path
    File::Temp
    FindBin
    Getopt::Long
    IO::Pty::Easy
    IO::Socket::SSL
    JSON
    JSON::Parse
    List::MoreUtils
    List::Util
    LockFile::Simple
    Log::Dispatch
    Log::Dispatch::File
    Log::Dispatch::File::Rolling
    Log::Dispatch::FileRotate
    Log::Log4perl
    Log::Log4perl::Config::PropertyConfigurator
    LWP::Protocol::https
    LWP::Simple
    LWP::UserAgent
    Net::FTP
    Net::SMTP
    Net::SMTP::SSL
    Net:SSLeay
    Switch
    Time::Format
    Time::HiRes
    Time::Piece
    URI::Encode
    URI::Escape
    URL::Encode
    XML::LibXML
    XML::Simple
    YAML
     These can be installed using the command line below for instance:
    cpan -fi Config Config::IniFiles Cwd Crypt::SSLeay Data::Dumper Data::UUID DateTime::Format::Strptime Encode Encode::Locale Error Fcntl File::Basename File::Copy File::Find File::Path File::Temp FindBin Getopt::Long IO::Pty::Easy JSON JSON::Parse List::MoreUtils List::Util LockFile::Simple Log::Dispatch Log::Dispatch::File Log::Dispatch::File::Rolling Log::Dispatch::FileRotate Log::Log4perl Log::Log4perl::Config::PropertyConfigurator LWP::Protocol::https LWP::Simple LWP::UserAgent Net::FTP Net::SMTP Net::SMTP::SSL Net:SSLeay Switch Time::Format Time::HiRes Time::Piece URI::Encode URI::Escape URL::Encode XML::LibXML XML::Simple YAML

Consult Perl forums such as http://www.perlmonks.org/ if you have trouble installing the Perl modules. Check CPAN documentation at https://metacpan.org/.

Troubleshooting Perl module installation failures

If any of your Perl modules fails during installation with cpan and does not work by retrying, then try alternates like package managers. You could try yum on Linux and ppm on Windows.

If any Perl module fails to install with a cpan command, it is usually due to a dependency on some other module or software.

For example, if your cpan Crypt::SSLeay module fails to install on Linux, then try installing with a package manager like yum, as shown below:

sudo yum install perl-Crypt-SSLeay

SDK Installation

  1. Download the SDK from the support portal and unzip it into a recommended root folder: 
  2. Linux or MacOS: /zoom-deploy e.g. /home/evolphin/zoom-deploy
    Windows: /evolphin/zoom-deploy/ for e.g. d:/evolphin/zoom-deploy
  3. The Perl SDK is contained in the libs/ folder. The various Perl modules and the functions supported are described later in this article.
  4. Included with the SDK are a number of samples that can be used as a template for creating new automation.

Getting Ready to Develop Automation

  1. Please follow the folder structure below for developing the automation using the Zoom Perl SDK:
    Folder Structure - Perl SDK

     

    1. Download the SDK, unzip it and copy the lib directory under user-home/zoom-deploy.
    2. The perl scripts for automation should be placed under user-home/zoom-deploy/scripts.
    3. The scripts configuration should go into user-home/zoom-deploy/scripts/conf/config.ini.
    4. Logs configuration should go into user-home/zoom-deploy/scripts/conf/log4perl.conf
  2. Please review a sample script below to learn how to initialize the various Perl modules:
    Perl Script - Send a test mail


Example: log4perl.conf

##############################################################################

# Log::Log4perl Conf # ############################################################################### log4perl.rootLogger = DEBUG, LOG1

log4perl.appender.LOG1 = Log::Log4perl::Appender::File

log4perl.appender.LOG1.filename = /home/evolphin/zoom-deploy/log/mylog.log

log4perl.appender.LOG1.mode = append

log4perl.appender.LOG1.layout = Log::Log4perl::Layout::PatternLayout

log4perl.appender.LOG1.layout.ConversionPattern = %d %p %m %n

Example: config.ini

[ZOOMSERVER]

serverUsername = superuser

serverPassword = zoom

serverURL = http://localhost:8880

webminURL = http://localhost:8443

[ENVIRONMENT]

zmPath = /opt/zoom/bin/zm [DATE]

# Based on Perl Time::Piece supported format strings

#Date Format = %Y-%m-%d Date Format = %m/%d/%Y

# Need to be from http://en.wikipedia.org/wiki/List_of_tz_database_time_zones TZ column Time Zone = America/Los_Angeles

Leave a Comment