Skip to content

Tools selection guide

Marco Brescianini edited this page Nov 7, 2024 · 7 revisions

The Kaleyra Video allows you to selectively enable or disable some of the call tools it provides. This guide is meant for clients of the 4.0 version, if you are using a 3.x version take a look at this guide instead.

Table of contents

Overview

Starting from the 3.0 version the Kaleyra Video SDK collaborative tools are disabled by default. You are required to opt-in for any collaborative tool you want to use in your app. Collaborative tools can be enabled at any time after the SDK configuration. In the next chapter we are going to show you how to enable each tool and the configuration options they require.

Screen sharing tools

The Kaleyra Video SDK provides two different tools for sharing your screen contents during a VoIP call. The first one is the in-app screen sharing tool, it enables sharing the contents of your app's main window only, it does not share the contents of the user's device screen, nor it can share the contents of your app while the app is in background. The second one is the broadcast screen sharing tool it is capable of sharing the contents of the user's device screen, it is not limited to sharing the contents of your app and it is capable of sharing the user's device screen contents even if your app is in background. To get more information on this tools you can checkout this dedicated guide.

In-app screen sharing

In order to opt-in for the in-app screen sharing tool, you must enable it after the SDK has been configured. By default the tool is disabled. The following code snippets will show you how you enable this tool in your app:

import KaleyraVideoSDK

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        var config = Config(appID: "My app id", region: .europe, environment: .sandbox)

        do {
            try KaleyraVideo.instance.configure(config)
            KaleyraVideo.instance.conference?.settings.tools.inAppScreenSharing = .enabled
        } catch {
            print("Could not configure the SDK because of \(error)")
        }

        return true
    }
}

Broadcast screen sharing

The broadcast screen sharing tool requires a broadcast upload extension embedded in your app. That extension and the Kaleyra Video SDK need to talk to each other in order to stream the contents of the user's device screen during a video call. While enabling the broadcast screen sharing you must provide the app group identifier used by both ends to exchange the information they need. If you haven't already, we strongly suggest you to take a look at our screensharing guide that will explain in much more detail how to setup the broadcast upload extension and its purpose. In order to opt-in for the broadcast screen sharing tool, you must enable it after the SDK has been configured. By default the tool is disabled. The following code snippets will show you how you enable this tool in your app:

import KaleyraVideoSDK

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        var config = Config(appID: "My app id", region: .europe, environment: .sandbox)

        do {
            try KaleyraVideo.instance.configure(config)
            KaleyraVideo.instance.conference?.settings.tools.broadcastScreenSharing = .enabled(appGroupIdentifier: try! .init("group.com.acme.myapp"), extensionBundleIdentifier: "com.acme.myapp")
        } catch {
            print("Could not configure the SDK because of \(error)")
        }

        return true
    }
}

Whiteboard

In order to opt-in for the whiteboard tool, you must enable it after the SDK has been configured. By default the tool is disabled. The following code snippets will show you how you enable this tool in your app:

import KaleyraVideoSDK

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        var config = Config(appID: "My app id", region: .europe, environment: .sandbox)

        do {
            try KaleyraVideo.instance.configure(config)
            KaleyraVideo.instance.conference?.settings.tools.whiteboard = .enabled
        } catch {
            print("Could not configure the SDK because of \(error)")
        }

        return true
    }
}

Tip

The whiteboard tool will not allow the upload of images and files unless the filesharing tool is also enabled in the call.

Filesharing

In order to opt-in for the filesharing tool, you must enable it after the SDK has been configured. By default the tool is disabled. The following snippets of code will show you how you can enable this tool in your app:

import KaleyraVideoSDK

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        var config = Config(appID: "My app id", region: .europe, environment: .sandbox)

        do {
            try KaleyraVideo.instance.configure(config)
            KaleyraVideo.instance.conference?.settings.tools.fileshare = .enabled
        } catch {
            print("Could not configure the SDK because of \(error)")
        }

        return true
    }
}

Chat

In order to opt-in for the chat tool, you must enable it after the SDK has been configured. By default the tool is disabled. The following snippets of code will show you how you can enable this tool in your app:

import KaleyraVideoSDK

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        var config = Config(appID: "My app id", region: .europe, environment: .sandbox)

        do {
            try KaleyraVideo.instance.configure(config)
            KaleyraVideo.instance.conference?.settings.tools.chat = .enabled
        } catch {
            print("Could not configure the SDK because of \(error)")
        }

        return true
    }
}
Clone this wiki locally