'React native callkeep incoming call expiration time

I'm using callkeep to show an incoming call screen when a VoIP push notification is triggered. What I want to accomplish, is to ring the user for just 20 seconds. In case the user never answers, the incoming call screen should just disappear. How can I do that with callkeep?

Should it be modified in the javascript code or in the AppDelegate?



Solution 1:[1]

There's a solution, which is done on front end part. First of all, run

npm i react-native-background-timer

This will help you run scheduled tasks when the app is closed.

Then, you will need to add the listener:

RNCallKeep.addEventListener("didDisplayIncomingCall", onIncomingCallDisplayed);

Which is fired when call is displayed.

And then implement it like this:

  const onIncomingCallDisplayed = ({callUUID, handle, fromPushKit, payload,}) => {
        BackgroundTimer.setTimeout(() => {
            RNCallKeep.endAllCalls();
        }, 120000);
    };

Where 120000 is time in milliseconds when you want to end the call. You could also add a backend request to notify your server that the call is rejected.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Nor Newman