Skip to content

Vonage/vonage-php-sdk-video

Repository files navigation

Vonage PHP SDK for Video

Contributor Covenant Build Status Latest Stable Version License codecov

The Vonage logo

This library requires a minimum PHP version of 8.1

This is a PHP client library for the Vonage Video API. It extends the Vonage PHP library. To use this, you'll need a Vonage account. Sign up [for free at nexmo.com][signup].

Installation


To use the client library you'll need to have [created a Vonage account][signup].

To install the PHP client library to your project, we recommend using Composer.

composer require vonage/video

PLEASE NOTE that this package is not designed to be used as a standalone. It requires the vonage/client-core package to work, but you might not have a PSR-11-compliant HTTP Client installed which is required for this. In order to get around this, install vonage/client-core first, then vonage/video. This will cover all requirements of the package.

If you're new to Composer, here are some resources that you may find useful:

Usage

If you're using Composer, make sure the autoloader is included in your project's bootstrap file:

require_once "vendor/autoload.php";

Create a client with your Vonage application ID and private key:

use Vonage\Client;
use Vonage\Client\Credentials\Keypair;
use Vonage\Video\ClientFactory;

$credentials = new Keypair('private-key-string', 'application-id');
$client = new Client($credentials);
$vonageVideoClient = $client->video();

For testing purposes you can change the API URL that the client makes requests to from https://video.api.vonage.com to something else. To do this, pass the base_video_url option when creating the Vonage client:

$credentials = new Keypair('private-key-string', 'application-id');
$options = ['base_video_url' => 'https://local-testing.video.example.com'];
$client = new Client($credentials. $options);

Examples

Creating a new Session

$session = $client->video()->createSession();
echo $session->getSessionId();

Create a new session with an Archive

use Vonage\Video;
use Vonage\Video\Archive\ArchiveMode;

$session = $client->video()->createSession(new SessionOptions(['archiveMode' => ArchiveMode::ALWAYS]));
echo $session->getSessionId();

Generating a Client Token

$token = $client->video()->generateClientToken($session->getSessionId());

Supported APIs

The following is a list of Vonage Video APIs and whether the SDK provides support for them:

API Supported?
Session Creation
Signaling
Force Muting
Archiving
Custom S3/Azure buckets
SIP Interconnect
Live Streaming Broadcasts
Experience Composer
Account Management