Skip to content

Customize Configuration

Federico Marin edited this page Jan 4, 2022 · 15 revisions

SimpleCallConfiguration

This is a utility class which defines that all tools (whiteboard, screen share etc.) will be used, and the chat tool will be also set with SimpleChatConfiguration.

SimpleChatConfiguration

This is a utility class which adds audioUpgradable and audioVideo options in the app bar menu and defines that all tools (whiteboard, screen share etc.) will be used in calls.

Customize CallConfiguration

A call can have different set of capabilities and options. Following an example with all the capabilities and options.

CallOptions callOptions = new CallOptions()
        .withRecordingEnabled()
        .withBackCameraAsDefault()
        .withProximitySensorDisabled()
        .withFeedbackEnabled();

Configuration.FileShare fileShareConfiguration = new FileShareConfiguration(); // this configuration will not set any capability or option in the file share.
Configuration.ScreenShare screenShareConfiguration = new ScreenShareConfiguration(); // this configuration will not set any capability or option in the screen share.
Configuration.Whiteboard whiteboardConfiguration = new WhiteboardConfiguration();// this configuration will not set any capability  or option in the whiteboard.
Configuration.Chat chatConfiguration = new ChatConfiguration(); // this configuration will not set any capability or option in the chat.

CallCapabilitySet callCapabilitySet = new CallConfiguration.CapabilitySet(
        chatConfiguration,
        fileShareConfiguration,
        screenShareConfiguration,
        whiteboardConfiguration
);

Configuration.Call callConfiguration = new CallConfiguration(callCapabilitySet, callOptions);

Customize ChatConfiguration

A chat can have different set of capabilities. Following an example with all the capabilities.

Configuration.Chat chatConfiguration = new ChatConfiguration(
        new ChatConfiguration.CapabilitySet(
                getCallConfiguration(), // this adds the audio only option in the app bar and  allows you to customize its configuration
                getCallConfiguration(), // this adds the audio upgradable option in the app bar and allows you to customize its configuration
                getCallConfiguration() // this adds the audio video option in the app bar and allows you to customize its configuration
        )
);

private ChatCapabilitySet.CallConfiguration getCallConfiguration(){
	CallOptions callOptions = new CallOptions()
                .withRecordingEnabled()
                .withBackCameraAsDefault()
                .withProximitySensorDisabled()
                .withFeedbackEnabled();

	Configuration.FileShare fileShareConfiguration = new FileShareConfiguration();
	Configuration.ScreenShare screenShareConfiguration = new ScreenShareConfiguration();
	Configuration.Whiteboard whiteboardConfiguration = new WhiteboardConfiguration();

	return new ChatConfiguration.CapabilitySet.CallConfiguration(
	        new ChatConfiguration.CapabilitySet.CallConfiguration.CapabilitySet(
	                fileShareConfiguration,
	                screenShareConfiguration,
	                whiteboardConfiguration
	        ),
	        callOptions
	);
}

Customize ScreenShareConfiguration

A screen share can have different set of options. Following an example with all the options.

ScreenShareOptionSet screenShareOptionSet =  new ScreenShareConfiguration.Options(ScreenShareOptionSet.USER_SELECTION);
                                                                            // or ScreenShareOptionSet.APP_ONLY
                                                                            // or ScreenShareOptionSet.WHOLE_DEVICE
Configuration.ScreenShare screenShareConfiguration = new ScreenShareConfiguration(
 new EmptyCapabilitySet(), // there are currently no capability in the screen share available to be set.
 screenShareOptionSet
); 

Obtain recordings

To obtain call recordings on your backend a web hook for the event on_recording_available must be registered.

For further details about registering webhooks for recording events please refer to the webhook configuration documentation and the recordings webhook documentation.

Obtain feedbacks

To obtain call feedbacks on your backend from the user base a web hook for the event on_room_new_feedback must be registered.

For further details about registering webhooks for new feedbacks available please refer to the webhook configuration documentation and the room events webhook documentation.

Clone this wiki locally