BDKConfig

Objective-C


@interface BDKConfig : NSObject <NSCopying>

Swift

class Config : NSObject, NSCopying

A class encapsulating the configuration options for the bandyer sdk.

Environment

  • The environment where the module will run (e.g production, sandbox, and so on…).

    Defaults to production.

    Declaration

    Objective-C

    @property (nonatomic, copy) BDKEnvironment *_Nonnull environment;

    Swift

    @NSCopying var environment: BDKEnvironment { get set }

CallKit

  • A flag indicating whether CallKit should be enabled or disabled. If the system supports CallKit (i.e iOS >= 10.0), this flag will be enabled in the default configuration.

    Warning

    When this flag is set to YES, you must also provide an object conforming to the PKPushRegistryDelegate protocol to the BDKConfig object or setting the automaticallyHandleVoIPNotifications flag to NO, failing to do so will result in an exception being raised by the SDK. Enabling CallKit support requires also VoIP push notifications support being enabled. For further information take a look at our guides in the WiKi

    Declaration

    Objective-C

    @property (nonatomic, assign, unsafe_unretained, readwrite,
              getter=isCallKitEnabled) BOOL callKitEnabled;

    Swift

    var isCallKitEnabled: Bool { get set }
  • A set containing which CXHandleType your app supports.

    The default value is a set containing CXHandleTypeGeneric value only.

    Declaration

    Objective-C

    @property (nonatomic, copy) API_AVAILABLE(ios(10.0)) NSSet<NSNumber *> *supportedHandleTypes;

    Swift

    var supportedHandleTypes: Set<NSNumber> { get set }
  • The localized name of your app that will be shown in the native System UI when a call is being performed.

    The default value is the CFBundleDisplayName value found in your app Info.plist file or the CFBundleName value if the former is not available.

    Declaration

    Objective-C

    @property (nonatomic, copy) API_AVAILABLE(ios(10.0)) NSString *nativeUILocalizedName;

    Swift

    var nativeUILocalizedName: String { get set }
  • The name of the sound resource in the app bundle to be used as ringtone when a call is received.

    The default value is nil, meaning the system default ringtone will be used.

    Declaration

    Objective-C

    @property (nonatomic, copy, nullable) NSString *nativeUIRingToneSound;

    Swift

    var nativeUIRingToneSound: String? { get set }
  • The PNG data for the icon image that will displayed in the native System UI for the button which takes the user from the system UI to your app. The icon image must be a square with side length of 40 points. The alpha channel of the image is used to create a white image mask.

    Beware, you should provide the image as a NSData object, not an UIImage object. Take a look at UIImagePNGRepresentation function documentation for more info about transforming an UIImage to a NSData object representation.

    The default value is nil, meaning that the native UI will use a placeholder. It is highly recommended to provide an image.

    Declaration

    Objective-C

    @property (nonatomic, copy, nullable) NSData *nativeUITemplateIconImageData;

    Swift

    var nativeUITemplateIconImageData: Data? { get set }

VoIP push notifications

  • The keypath the sdk will search for the Bandyer notification payload in the push notification received from APNS. If you provide a value the sdk will use that value to search for the required VoIP Bandyer notification body, otherwise if you don’t specify anything, the SDK will try to search the VoIP Bandyer notification body by itself.

    Declaration

    Objective-C

    @property (nonatomic, copy, nullable) NSString *notificationPayloadKeyPath;

    Swift

    var notificationPayloadKeyPath: String? { get set }
  • An object conforming to PKPushRegistryDelegate protocol that will be notified when the VoIP push token has been updated.

    You must provide a valid object before initializing the sdk, unless the isCallKitEnabled flag is set to NO or the automaticallyHandleVoIPNotifications is set to NO

    Warning

    The SDK will raise an exception if this property is nil during SDK initialisation when both the isCallKitEnabled and the automaticallyHandleVoIPNotifications are set to YES

    Declaration

    Objective-C

    @property (nonatomic, strong) id<PKPushRegistryDelegate> _Nonnull pushRegistryDelegate;

    Swift

    var pushRegistryDelegate: PKPushRegistryDelegate { get set }
  • A flag determining if the Kaleyra Video SDK should automatically handle VoIP Notifications delivered to your app (when the flag is set to YES) or if your app is required to handle VoIP notifications delivered to it (when the flag is set to NO).

    The default value of this flag is YES.

    Warning

    This flag is ignored unless the isCallKitEnabled flag is set to YES.

    Declaration

    Objective-C

    @property (nonatomic) BOOL automaticallyHandleVoIPNotifications;

    Swift

    var automaticallyHandleVoIPNotifications: Bool { get set }

Speaker Hijacking

  • The strategy the SDK will use to override the audio output to the speaker when a call starts. The option provided will be used only when the app is running on devices mounting an ear speaker and a loud speaker (iPhones). On devices not supporting ear speaker (iPads) this option has no effect. The default value for this property is BDKSpeakerHijackingStrategyVideoForeground

    Declaration

    Objective-C

    @property (nonatomic) BDKSpeakerHijackingStrategy speakerHijackingStrategy;

    Swift

    var speakerHijackingStrategy: SpeakerHijackingStrategy { get set }

Tools

  • The configuration object for the whiteboard tool. You should set an instance to this property when you want to enable or disable the whiteboard tool or one of its tools. The default value for this property is a configuration object with all flags enabled (i.e. the whiteboard tool will be enabled and all of its tools will be enabled too). Passing nil to this property will reset the value held by the property to the default configuration value.

    Declaration

    Objective-C

    @property (nonatomic, strong, null_resettable) BDKWhiteboardToolConfiguration *whiteboardConfiguration;

    Swift

    var whiteboardConfiguration: BDKWhiteboardToolConfiguration! { get set }
  • The configuration object for the file share tool. You should set an instance to this property when you want to enable or disable the file share tool. The default value for this property is a configuration object with “enabled” flag to true (i.e. the fileshare tool will be enabled). Passing nil to this property will reset the value held by the property to the default configuration value.

    Declaration

    Objective-C

    @property (nonatomic, strong, null_resettable) BDKFileshareToolConfiguration *fileshareConfiguration;

    Swift

    var fileshareConfiguration: BDKFileshareToolConfiguration! { get set }
  • The configuration object for the file in-app screen sharing tool. You should set an instance to this property when you want to enable or disable the tool. The default value for this property is a configuration object with “enabled” flag to true (i.e. the screen sharing tool will be enabled). Passing nil to this property will reset the value held by the property to the default configuration value.

    Declaration

    Objective-C

    @property (nonatomic, strong, null_resettable) BDKInAppScreensharingToolConfiguration *inAppScreensharingConfiguration;

    Swift

    var inAppScreensharingConfiguration: BDKInAppScreensharingToolConfiguration! { get set }
  • The configuration object for the broadcast screensharing tool. You should set an instance to this property when you want to enable or disable the tool. The default value for this property is a configuration object with “enabled” flag to false (i.e. the tool will be disabled). Passing nil to this property will reset the value held by the property to the default configuration value.

    Declaration

    Objective-C

    @property (nonatomic, strong, null_resettable) BDKBroadcastScreensharingToolConfiguration *broadcastScreensharingConfiguration;

    Swift

    var broadcastScreensharingConfiguration: BDKBroadcastScreensharingToolConfiguration! { get set }

Initialization

  • Initialize a default configuration instance with default values set, for “Production” environment.

    Warning

    The default environment is production.

    Declaration

    Objective-C

    - (nonnull instancetype)init;

    Swift

    init()

    Return Value

    A default configuration instance.

  • Initialize a default configuration instance with default values set, for “Production” environment.

    Warning

    The default environment is production.

    Declaration

    Objective-C

    + (nonnull instancetype)new;

    Swift

    class func new() -> Self

    Return Value

    A default configuration instance.