BDKConfig

Objective-C

@interface BDKConfig : NSObject <NSCopying>

Swift

class BDKConfig : NSObject, NSCopying

A class encapsulating the configuration options for the bandyer sdk.

Customization

  • Deprecated

    Use the property userInfoFetcher inside BandyerSDK shared instance instead.

    The user info fetcher instance that is going to be used whenever the sdk needs to show any user information like hers/his first name, last name and so on.

    Declaration

    Objective-C

    @property (nonatomic, copy, null_resettable) id<BDKUserInfoFetcher> userInfoFetcher;

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.

    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 }
  • An object conforming to BCXHandleProvider protocol that will be used by the module when a CXHandle object must be created.

    The default value, is an dummy object that returns the user aliases provided as the value of a CXHandle object with CXHandleTypeGeneric type. This means that the native System UI will show user aliases as caller or callee user names.

    Declaration

    Objective-C

    @property (nonatomic, strong, null_resettable) id<BCXHandleProvider> handleProvider;

VoIP push notifications

  • The keypath the sdk will search for the Bandyer notification payload in the push notification received from APNS.

    You must provide a valid keyPath before initializing the sdk. Failing to do so will crash your app.

    Declaration

    Objective-C

    @property (nonatomic, copy) NSString *_Nonnull 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.

    Declaration

    Objective-C

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

    Swift

    var pushRegistryDelegate: PKPushRegistryDelegate { 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: BDKSpeakerHijackingStrategy { 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 }

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.

Deprecated

  • Deprecated

    This property is deprecated and it has been moved to BandyerSDK class, it will be removed in a future release. Use BandyerSDK.logLevel instead!

    This property sets the logging level for the module. If you want to turn on logging facilities you can set this value to one of the logging levels specified BDFLogLevel enum (e.g. BDFLogLevelError, BDFLogLevelWarning and so on…). If you want to turn off logging you can pass BDFLogLevelOff value. The default value for this flag is BDFLogLevelOff.

    Declaration

    Objective-C

    @property (class, nonatomic) BDFLogLevel logLevel;

    Swift

    class var logLevel: BDFLogLevel { get set }