14.6

On November 19th, 2021, Help Lightning released 14.6 of its server and client SDKs. The primary change is the support of the new European Data Center.

The European Data Center is a completely separate environment. Accounts do not exists in both environments. When a new Enterprise Site is created, it has to be created in the desired data center, and cannot be migrated once created.
As a developer, you must have a separate developer account and API Key for each data center you plan to support!

Server Changes

The APIs for the new European data center are the exact same. The two data centers will always be running the same version of the server software, with the same APIs available.

To use the European data center, you will need to use the new European API Endpoint:

https://api.eu1.helplightning.net/api/

Accounts and API keys do not cross over between data centers. You will need a separate developer account for the European data center, and will need to generate a new API Key for the European Data Center.

Client SDK Changes

The 14.6 SDKs are backward compatible. If you don’t plan to support the European data center, you can upgrade without any code changes. This will give you access to several new in call features and bug fixes.

The primary change in the client SDKs, is that the SDKs now support an OPTIONAL parameter when starting a call. If no parameter is passed in, all SDKs will use the existing US data center as the default.

Web SDK

The 14.6 SDK for the web is versioned as 4.40.2

The startCall function now takes an optional 3rd parameter, which is the data center. This defaults to US. Valid parameters are:

  • US
  • EU
  let callClient = HL.CallClientFactory.CallClient;
  // set up delegates
  ...
  
  const call = new HL.Call(session_id, session_token, user_token,
                           ws_url, helplightningApiKey, 'Name,
                           'Avatar URL');
  
  callClient.startCall(call, container, 'US').then((callId) => {
    ...
  }

Android SDK

The 14.6 SDK for Android is versioned as 1.10.1

The startCall method now takes an optional 4th parameter, which is the data center. This defaults to com.vipaar.lime.hlsdk.misc.Environment.DataCenter.US which is the US data center. Valid parameters are:

  • com.vipaar.lime.hlsdk.misc.Environment.DataCenter.US :: US Data Center
  • com.vipaar.lime.hlsdk.misc.Environment.DataCenter.EU :: European Data Center

Example:

import com.vipaar.lime.hlsdk.misc.Environment;
...

Environment.DataCenter dataCenter = Environment.DataCenter.US;
HLClient.getInstance().startCall(sessionData, rootView.getContext(), SampleInCallService.class, dataCenter)
  .then(result -> {
    ...
  }, err -> {
    ...
});

iOS SDK

The 14.6.0 SDK for iOS is available here.

The startCall function now takes an optional 3rd parameter, which is the data center. This defaults to kHLDataCenterID_US1. Valid parameters are:

  • kHLDataCenterID_US1 :: US Data Center
  • kHLDataCenterID_EU1 :: European Data Center

Swift Example:

  let promise = HLClientSwift.shared.startCall(call: call, viewController: self, dataCenterId: kHLDataCenterID_US1)
  promise.then { (bool) in
      NSLog("The call has started")
  }
  promise.catch { (error) in
      self.joinIndicator.stopAnimating()
      NSLog("Cannot start the call:%@", error.localizedDescription);
  }

Objective-C Example:

  [HLClient.sharedInstance startCall:call withPresentingViewController:self dataCenter:kHLDataCenterID_EU1].then(^id(id value) {
      NSLog(@"The call has started");
      return value;
  }).catch(^(NSError* error) {
      NSLog(@"Cannot start the call:%@", error);
  })

Xamarin SDK

The 14.6.0 SDK for Xamarin is available here.

The StartCall function now takes an optional 3rd parameter, which is the data center. This defaults to DataCenter.US1. Valid parameters are:

  • DataCenter.US1
  • DataCenter.EU1

Example:

Task<IDictionary<string, object>> task = CallClientFactory.Instance.CallClient.StartCall(call, this, DataCenter.US1);
task.ContinueWith(t => {
    if (t.IsCompletedSuccessfully)
    {
        Console.WriteLine("The Call has started: " + t.Result[Call.HLCallInfoCallKey]);
    }
    else
    {
        Console.Error.WriteLine("Cannot start the call: " + t.Exception);
    }
});