Skip to content

Customize Configuration

Kristiyan Petrov edited this page Apr 6, 2021 · 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();

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();

	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
); 
Clone this wiki locally