Skip to content

Calls do not end when rejected via native ring notification #2013

@ertucaglar

Description

@ertucaglar

Which package/packages do you use?

  • @stream-io/video-react-sdk
  • @stream-io/video-react-native-sdk
  • @stream-io/video-client

Describe the bug
In one-to-one calls, when the other user receives a ring notification from iOS, if you reject it via the notification, the useCalls() hook on the calling client continues to return the call and when I check it on the Stream dashboard, the call does not appear to have ended.

To Reproduce
Steps to reproduce the behavior:

  1. create one-to-one call
  2. reject target user with native ring notification

Expected behavior
The call status should be "ended" for both users and when we look at the dashboard logs, it should appear as "ended".

Screenshots
If applicable, add screenshots to help explain your problem.

Version

  • SDK version

Env:

Fill out what's applicable

React / JS client

  • Browser [e.g. chrome, safari]

React Native / Expo

  • OS: [iOS]
  • Device or emulator [real iPhone 15 Pro & real iPhone 14]

Node JS client

  • Node version

Additional context
I temporarily handle this issue as follows:

const unsubCallRejected = voiceClient?.on(
      'call.rejected',
      async (event: CallRejectedEvent) => {
        try {
          if (event.call.type === 'default') {
            await voiceClient.call(event.call.type, event.call.id).endCall();
          } else if (event.call.type === 'audio_room') {
            await voiceClient.call(event.call.type, event.call.id).leave();
          }

          await voiceClient.call(event.call.type, event.call.id).get();

          if (
            (event.reason === 'timeout' &&
              event.call.created_by.id ===
                voiceClient.state.connectedUser?.id) ||
            (event.reason === 'decline' &&
              event.user.id !== voiceClient.state.connectedUser?.id)
          ) {
            InCallManager.stop({busytone: '_BUNDLE_'});
          }
        } catch (e) {
          console.error(e);
        }
      },
    );

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions