Android
Calls Authentication

Authentication

In order to use the features of the Calls SDK in your client apps, user authentication with Sendbird server must be initiated through the SendBirdCall.authenticate() method. To receive calls when an app is in the background or closed, a user’s device registration token must be registered to the server. A device registration token can be registered by passing it as an argument to a parameter in the authenticate() method when authenticating a user, or by using the SendBirdCall.registerPushToken() method after a user’s authentication has been completed.


Initialize the Calls SDK with APP_ID

As shown below, the SendBirdCall instance must be initialized when a client app is launched. Initialization is done by using the APP_ID of your Sendbird application in the Dashboard. If the instance is initialized with a different APP_ID, all existing call-related data in a client app will be cleared and the SendBirdCall instance will be initialized again with the new APP_ID.

Light Color Skin
Copy
// Initialization
SendBirdCall.init(getApplicationContext(), APP_ID);

Authenticate to Sendbird server

In order to use the interfaces and methods provided in the SendBirdCall instance, a user must be connected to Sendbird server by authentication. Without authentication, calling the methods of the Calls SDK will not work in a user’s client app. This means that if a user performs actions such as accepting an incoming call before authentication, the user will receive errors from Sendbird server.

Note: Using the Chat API, you can create a user along with their own access token, or issue an access token for an existing user.

Light Color Skin
Copy
// Authentication
AuthenticateParams params = new AuthenticateParams(USER_ID)
    .setAccessToken(ACCESS_TOKEN)
    .setPushToken(PUSH_TOKEN, isUnique);

SendBirdCall.authenticate(params, new AuthenticateHandler() {
    @Override
    public void onResult(User user, SendBirdException e) {
        if (e == null) {
            // The user is authenticated successfully.
        }
    }
});

// Update push token
public class MyFirebaseMessagingService extends FirebaseMessagingService {
    ... 

    @Override
    public void onNewToken(@NonNull String token) {
        SendBirdCall.registerPushToken(token, isUnique, new CompletionHandler() {
            @Override
            public void onResult(SendBirdException e) {
                if (e == null) {
                    // The push token has been registered successfully.
                }
            }
        });
    }
    ... 

}

Deauthenticate from Sendbird server

Deauthenticate a user from Sendbird server using the SendBirdCall.deauthenticate() method. It will clear all current direct calls, session keys, and user information from a user’s client app. This can also be considered as logging out from the server.

Light Color Skin
Copy
SendBirdCall.deauthenticate(PUSH_TOKEN, new CompletionHandler() {
    @Override
    public void onResult(SendBirdException e) {

    }
});