@stream-io/video-react-native-sdk 1.29.0-beta.2 → 1.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/CHANGELOG.md +3114 -0
  2. package/android/src/main/AndroidManifest.xml +1 -8
  3. package/android/src/main/AndroidManifestNew.xml +0 -11
  4. package/android/src/main/java/com/streamvideo/reactnative/StreamVideoReactNativeModule.kt +5 -42
  5. package/android/src/main/java/com/streamvideo/reactnative/audio/utils/WebRtcAudioUtils.kt +6 -70
  6. package/android/src/main/java/com/streamvideo/reactnative/callmanager/StreamInCallManagerModule.kt +4 -6
  7. package/android/src/main/java/com/streamvideo/reactnative/util/CallAliveServiceChecker.kt +95 -0
  8. package/dist/commonjs/hooks/push/useIosCallkeepWithCallingStateEffect.js +160 -0
  9. package/dist/commonjs/hooks/push/useIosCallkeepWithCallingStateEffect.js.map +1 -0
  10. package/dist/commonjs/hooks/push/useIosVoipPushEventsSetupEffect.js +31 -18
  11. package/dist/commonjs/hooks/push/useIosVoipPushEventsSetupEffect.js.map +1 -1
  12. package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js +97 -64
  13. package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
  14. package/dist/commonjs/index.js +0 -1
  15. package/dist/commonjs/index.js.map +1 -1
  16. package/dist/commonjs/modules/call-manager/CallManager.js +0 -26
  17. package/dist/commonjs/modules/call-manager/CallManager.js.map +1 -1
  18. package/dist/commonjs/providers/StreamCall/index.js +6 -6
  19. package/dist/commonjs/providers/StreamCall/index.js.map +1 -1
  20. package/dist/commonjs/utils/StreamVideoRN/index.js +21 -33
  21. package/dist/commonjs/utils/StreamVideoRN/index.js.map +1 -1
  22. package/dist/commonjs/utils/internal/registerSDKGlobals.js +3 -52
  23. package/dist/commonjs/utils/internal/registerSDKGlobals.js.map +1 -1
  24. package/dist/commonjs/utils/push/android.js +200 -145
  25. package/dist/commonjs/utils/push/android.js.map +1 -1
  26. package/dist/commonjs/utils/push/internal/ios.js +34 -16
  27. package/dist/commonjs/utils/push/internal/ios.js.map +1 -1
  28. package/dist/commonjs/utils/push/internal/rxSubjects.js +20 -1
  29. package/dist/commonjs/utils/push/internal/rxSubjects.js.map +1 -1
  30. package/dist/commonjs/utils/push/internal/utils.js +1 -17
  31. package/dist/commonjs/utils/push/internal/utils.js.map +1 -1
  32. package/dist/commonjs/utils/push/ios.js.map +1 -1
  33. package/dist/commonjs/utils/push/libs/callkeep.js +17 -0
  34. package/dist/commonjs/utils/push/libs/callkeep.js.map +1 -0
  35. package/dist/commonjs/utils/push/libs/index.js +19 -8
  36. package/dist/commonjs/utils/push/libs/index.js.map +1 -1
  37. package/dist/commonjs/utils/push/libs/notifee/index.js +19 -0
  38. package/dist/commonjs/utils/push/libs/notifee/index.js.map +1 -1
  39. package/dist/commonjs/utils/push/libs/voipPushNotification.js +17 -0
  40. package/dist/commonjs/utils/push/libs/voipPushNotification.js.map +1 -0
  41. package/dist/commonjs/utils/push/setupIosCallKeepEvents.js +205 -0
  42. package/dist/commonjs/utils/push/setupIosCallKeepEvents.js.map +1 -0
  43. package/dist/commonjs/utils/push/setupIosVoipPushEvents.js +6 -7
  44. package/dist/commonjs/utils/push/setupIosVoipPushEvents.js.map +1 -1
  45. package/dist/commonjs/version.js +1 -1
  46. package/dist/commonjs/version.js.map +1 -1
  47. package/dist/module/hooks/push/useIosCallkeepWithCallingStateEffect.js +153 -0
  48. package/dist/module/hooks/push/useIosCallkeepWithCallingStateEffect.js.map +1 -0
  49. package/dist/module/hooks/push/useIosVoipPushEventsSetupEffect.js +31 -18
  50. package/dist/module/hooks/push/useIosVoipPushEventsSetupEffect.js.map +1 -1
  51. package/dist/module/hooks/useAndroidKeepCallAliveEffect.js +99 -66
  52. package/dist/module/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
  53. package/dist/module/index.js +0 -1
  54. package/dist/module/index.js.map +1 -1
  55. package/dist/module/modules/call-manager/CallManager.js +0 -26
  56. package/dist/module/modules/call-manager/CallManager.js.map +1 -1
  57. package/dist/module/providers/StreamCall/index.js +6 -6
  58. package/dist/module/providers/StreamCall/index.js.map +1 -1
  59. package/dist/module/utils/StreamVideoRN/index.js +21 -33
  60. package/dist/module/utils/StreamVideoRN/index.js.map +1 -1
  61. package/dist/module/utils/internal/registerSDKGlobals.js +4 -53
  62. package/dist/module/utils/internal/registerSDKGlobals.js.map +1 -1
  63. package/dist/module/utils/push/android.js +202 -147
  64. package/dist/module/utils/push/android.js.map +1 -1
  65. package/dist/module/utils/push/internal/ios.js +34 -16
  66. package/dist/module/utils/push/internal/ios.js.map +1 -1
  67. package/dist/module/utils/push/internal/rxSubjects.js +19 -0
  68. package/dist/module/utils/push/internal/rxSubjects.js.map +1 -1
  69. package/dist/module/utils/push/internal/utils.js +0 -14
  70. package/dist/module/utils/push/internal/utils.js.map +1 -1
  71. package/dist/module/utils/push/ios.js.map +1 -1
  72. package/dist/module/utils/push/libs/callkeep.js +11 -0
  73. package/dist/module/utils/push/libs/callkeep.js.map +1 -0
  74. package/dist/module/utils/push/libs/index.js +2 -1
  75. package/dist/module/utils/push/libs/index.js.map +1 -1
  76. package/dist/module/utils/push/libs/notifee/index.js +18 -0
  77. package/dist/module/utils/push/libs/notifee/index.js.map +1 -1
  78. package/dist/module/utils/push/libs/voipPushNotification.js +11 -0
  79. package/dist/module/utils/push/libs/voipPushNotification.js.map +1 -0
  80. package/dist/module/utils/push/setupIosCallKeepEvents.js +199 -0
  81. package/dist/module/utils/push/setupIosCallKeepEvents.js.map +1 -0
  82. package/dist/module/utils/push/setupIosVoipPushEvents.js +6 -7
  83. package/dist/module/utils/push/setupIosVoipPushEvents.js.map +1 -1
  84. package/dist/module/version.js +1 -1
  85. package/dist/module/version.js.map +1 -1
  86. package/dist/typescript/hooks/push/useIosCallkeepWithCallingStateEffect.d.ts +5 -0
  87. package/dist/typescript/hooks/push/useIosCallkeepWithCallingStateEffect.d.ts.map +1 -0
  88. package/dist/typescript/hooks/push/useIosVoipPushEventsSetupEffect.d.ts.map +1 -1
  89. package/dist/typescript/hooks/useAndroidKeepCallAliveEffect.d.ts.map +1 -1
  90. package/dist/typescript/index.d.ts +0 -1
  91. package/dist/typescript/index.d.ts.map +1 -1
  92. package/dist/typescript/modules/call-manager/CallManager.d.ts +0 -5
  93. package/dist/typescript/modules/call-manager/CallManager.d.ts.map +1 -1
  94. package/dist/typescript/utils/StreamVideoRN/index.d.ts +2 -20
  95. package/dist/typescript/utils/StreamVideoRN/index.d.ts.map +1 -1
  96. package/dist/typescript/utils/StreamVideoRN/types.d.ts +29 -54
  97. package/dist/typescript/utils/StreamVideoRN/types.d.ts.map +1 -1
  98. package/dist/typescript/utils/internal/registerSDKGlobals.d.ts.map +1 -1
  99. package/dist/typescript/utils/push/android.d.ts +2 -1
  100. package/dist/typescript/utils/push/android.d.ts.map +1 -1
  101. package/dist/typescript/utils/push/internal/ios.d.ts.map +1 -1
  102. package/dist/typescript/utils/push/internal/rxSubjects.d.ts +12 -0
  103. package/dist/typescript/utils/push/internal/rxSubjects.d.ts.map +1 -1
  104. package/dist/typescript/utils/push/internal/utils.d.ts +0 -4
  105. package/dist/typescript/utils/push/internal/utils.d.ts.map +1 -1
  106. package/dist/typescript/utils/push/ios.d.ts +2 -1
  107. package/dist/typescript/utils/push/ios.d.ts.map +1 -1
  108. package/dist/typescript/utils/push/libs/callkeep.d.ts +3 -0
  109. package/dist/typescript/utils/push/libs/callkeep.d.ts.map +1 -0
  110. package/dist/typescript/utils/push/libs/firebaseMessaging/index.d.ts +2 -16
  111. package/dist/typescript/utils/push/libs/firebaseMessaging/index.d.ts.map +1 -1
  112. package/dist/typescript/utils/push/libs/index.d.ts +2 -1
  113. package/dist/typescript/utils/push/libs/index.d.ts.map +1 -1
  114. package/dist/typescript/utils/push/libs/notifee/index.d.ts +1 -0
  115. package/dist/typescript/utils/push/libs/notifee/index.d.ts.map +1 -1
  116. package/dist/typescript/utils/push/libs/voipPushNotification.d.ts +3 -0
  117. package/dist/typescript/utils/push/libs/voipPushNotification.d.ts.map +1 -0
  118. package/dist/typescript/utils/push/setupIosCallKeepEvents.d.ts +6 -0
  119. package/dist/typescript/utils/push/setupIosCallKeepEvents.d.ts.map +1 -0
  120. package/dist/typescript/utils/push/setupIosVoipPushEvents.d.ts.map +1 -1
  121. package/dist/typescript/version.d.ts +1 -1
  122. package/dist/typescript/version.d.ts.map +1 -1
  123. package/expo-config-plugin/dist/withAndroidManifest.js +33 -1
  124. package/expo-config-plugin/dist/withAndroidPermissions.js +7 -2
  125. package/expo-config-plugin/dist/withAppDelegate.js +197 -19
  126. package/expo-config-plugin/dist/withMainActivity.js +1 -1
  127. package/expo-config-plugin/dist/withiOSInfoPlist.js +3 -2
  128. package/ios/StreamInCallManager.m +0 -2
  129. package/ios/StreamInCallManager.swift +7 -19
  130. package/ios/StreamVideoReactNative.h +4 -7
  131. package/ios/StreamVideoReactNative.m +82 -191
  132. package/package.json +19 -14
  133. package/src/hooks/push/useIosCallkeepWithCallingStateEffect.ts +235 -0
  134. package/src/hooks/push/useIosVoipPushEventsSetupEffect.ts +34 -21
  135. package/src/hooks/useAndroidKeepCallAliveEffect.ts +120 -94
  136. package/src/index.ts +0 -1
  137. package/src/modules/call-manager/CallManager.ts +0 -36
  138. package/src/modules/call-manager/native-module.d.ts +0 -7
  139. package/src/providers/StreamCall/index.tsx +6 -6
  140. package/src/utils/StreamVideoRN/index.ts +30 -40
  141. package/src/utils/StreamVideoRN/types.ts +29 -56
  142. package/src/utils/internal/registerSDKGlobals.ts +4 -47
  143. package/src/utils/push/android.ts +308 -223
  144. package/src/utils/push/internal/ios.ts +46 -25
  145. package/src/utils/push/internal/rxSubjects.ts +29 -0
  146. package/src/utils/push/internal/utils.ts +0 -25
  147. package/src/utils/push/ios.ts +6 -1
  148. package/src/utils/push/libs/callkeep.ts +16 -0
  149. package/src/utils/push/libs/index.ts +2 -1
  150. package/src/utils/push/libs/notifee/index.ts +27 -0
  151. package/src/utils/push/libs/voipPushNotification.ts +17 -0
  152. package/src/utils/push/setupIosCallKeepEvents.ts +252 -0
  153. package/src/utils/push/setupIosVoipPushEvents.ts +7 -11
  154. package/src/version.ts +1 -1
  155. package/android/src/main/java/com/streamvideo/reactnative/keepalive/KeepAliveNotification.kt +0 -83
  156. package/android/src/main/java/com/streamvideo/reactnative/keepalive/StreamCallKeepAliveHeadlessService.kt +0 -134
  157. package/dist/commonjs/hooks/push/useCallingExpWithCallingStateEffect.js +0 -166
  158. package/dist/commonjs/hooks/push/useCallingExpWithCallingStateEffect.js.map +0 -1
  159. package/dist/commonjs/utils/internal/audioSessionPromise.js +0 -46
  160. package/dist/commonjs/utils/internal/audioSessionPromise.js.map +0 -1
  161. package/dist/commonjs/utils/internal/callingx.js +0 -132
  162. package/dist/commonjs/utils/internal/callingx.js.map +0 -1
  163. package/dist/commonjs/utils/keepCallAliveHeadlessTask.js +0 -48
  164. package/dist/commonjs/utils/keepCallAliveHeadlessTask.js.map +0 -1
  165. package/dist/commonjs/utils/push/libs/callingx.js +0 -75
  166. package/dist/commonjs/utils/push/libs/callingx.js.map +0 -1
  167. package/dist/commonjs/utils/push/setupCallingExpEvents.js +0 -97
  168. package/dist/commonjs/utils/push/setupCallingExpEvents.js.map +0 -1
  169. package/dist/module/hooks/push/useCallingExpWithCallingStateEffect.js +0 -159
  170. package/dist/module/hooks/push/useCallingExpWithCallingStateEffect.js.map +0 -1
  171. package/dist/module/utils/internal/audioSessionPromise.js +0 -39
  172. package/dist/module/utils/internal/audioSessionPromise.js.map +0 -1
  173. package/dist/module/utils/internal/callingx.js +0 -123
  174. package/dist/module/utils/internal/callingx.js.map +0 -1
  175. package/dist/module/utils/keepCallAliveHeadlessTask.js +0 -42
  176. package/dist/module/utils/keepCallAliveHeadlessTask.js.map +0 -1
  177. package/dist/module/utils/push/libs/callingx.js +0 -67
  178. package/dist/module/utils/push/libs/callingx.js.map +0 -1
  179. package/dist/module/utils/push/setupCallingExpEvents.js +0 -91
  180. package/dist/module/utils/push/setupCallingExpEvents.js.map +0 -1
  181. package/dist/typescript/hooks/push/useCallingExpWithCallingStateEffect.d.ts +0 -5
  182. package/dist/typescript/hooks/push/useCallingExpWithCallingStateEffect.d.ts.map +0 -1
  183. package/dist/typescript/utils/internal/audioSessionPromise.d.ts +0 -16
  184. package/dist/typescript/utils/internal/audioSessionPromise.d.ts.map +0 -1
  185. package/dist/typescript/utils/internal/callingx.d.ts +0 -13
  186. package/dist/typescript/utils/internal/callingx.d.ts.map +0 -1
  187. package/dist/typescript/utils/keepCallAliveHeadlessTask.d.ts +0 -10
  188. package/dist/typescript/utils/keepCallAliveHeadlessTask.d.ts.map +0 -1
  189. package/dist/typescript/utils/push/libs/callingx.d.ts +0 -9
  190. package/dist/typescript/utils/push/libs/callingx.d.ts.map +0 -1
  191. package/dist/typescript/utils/push/setupCallingExpEvents.d.ts +0 -8
  192. package/dist/typescript/utils/push/setupCallingExpEvents.d.ts.map +0 -1
  193. package/src/hooks/push/useCallingExpWithCallingStateEffect.ts +0 -218
  194. package/src/utils/internal/audioSessionPromise.ts +0 -39
  195. package/src/utils/internal/callingx.ts +0 -183
  196. package/src/utils/keepCallAliveHeadlessTask.ts +0 -54
  197. package/src/utils/push/libs/callingx.ts +0 -90
  198. package/src/utils/push/setupCallingExpEvents.ts +0 -117
@@ -1,54 +0,0 @@
1
- import { AppRegistry, Platform } from 'react-native';
2
- import type { Call } from '@stream-io/video-client';
3
- import { videoLoggerSystem } from '@stream-io/video-client';
4
- import { StreamVideoRN } from './StreamVideoRN';
5
-
6
- export const KEEP_CALL_ALIVE_HEADLESS_TASK_NAME = 'StreamVideoKeepCallAlive';
7
-
8
- /**
9
- * The keep-alive headless task needs access to the active `Call` instance.
10
- * The keep-alive hook will set this reference before starting the native service.
11
- */
12
- export const keepCallAliveCallRef: { current: Call | undefined } = {
13
- current: undefined,
14
- };
15
-
16
- function registerKeepCallAliveHeadlessTaskOnce() {
17
- if (Platform.OS !== 'android') return;
18
-
19
- AppRegistry.registerHeadlessTask(
20
- KEEP_CALL_ALIVE_HEADLESS_TASK_NAME,
21
- () => async (data: { callCid?: string } | undefined) => {
22
- const logger = videoLoggerSystem.getLogger(
23
- 'KEEP_CALL_ALIVE_HEADLESS_TASK',
24
- );
25
- const callCid = data?.callCid;
26
-
27
- const call = keepCallAliveCallRef.current;
28
- if (!call) {
29
- logger.warn(
30
- 'No active call instance available for keep-alive task; skipping.',
31
- { callCid },
32
- );
33
- return;
34
- }
35
- if (callCid && call.cid && call.cid !== callCid) {
36
- logger.warn(
37
- 'Keep-alive task callCid does not match active call; skipping.',
38
- { callCid, activeCallCid: call.cid },
39
- );
40
- return;
41
- }
42
-
43
- const config = StreamVideoRN.getConfig();
44
- const taskToRun = config.foregroundService.android.taskToRun;
45
- try {
46
- await taskToRun(call);
47
- } catch (e) {
48
- logger.error('Keep-alive headless task failed', e);
49
- }
50
- },
51
- );
52
- }
53
-
54
- registerKeepCallAliveHeadlessTaskOnce();
@@ -1,90 +0,0 @@
1
- import { StreamVideoConfig } from '../../StreamVideoRN/types';
2
-
3
- export type RNCallingxType =
4
- import('@stream-io/react-native-callingx').ICallingxModule;
5
- export type EventData = import('@stream-io/react-native-callingx').EventData;
6
- export type EventParams =
7
- import('@stream-io/react-native-callingx').EventParams;
8
- export type CallingExpOptions =
9
- import('@stream-io/react-native-callingx').CallingExpOptions;
10
-
11
- let callingx: RNCallingxType | undefined;
12
-
13
- try {
14
- callingx = require('@stream-io/react-native-callingx').CallingxModule;
15
- } catch {}
16
-
17
- export function getCallingxLib() {
18
- if (!callingx) {
19
- throw Error('react-native-callingx library is not installed.');
20
- }
21
- return callingx;
22
- }
23
-
24
- export function getCallingxLibIfAvailable() {
25
- return callingx ?? undefined;
26
- }
27
-
28
- export function extractCallingExpOptions(
29
- config: StreamVideoConfig,
30
- ): CallingExpOptions {
31
- const { push: pushConfig, foregroundService: foregroundServiceConfig } =
32
- config;
33
- const callingExpOptions: CallingExpOptions = {};
34
-
35
- if (pushConfig?.ios) {
36
- const iosOptions: CallingExpOptions['ios'] = {};
37
- if (pushConfig.ios.supportsVideo !== undefined) {
38
- iosOptions.supportsVideo = pushConfig.ios.supportsVideo;
39
- }
40
- if (pushConfig.ios.sound !== undefined) {
41
- iosOptions.sound = pushConfig.ios.sound;
42
- }
43
- if (pushConfig.ios.imageName !== undefined) {
44
- iosOptions.imageName = pushConfig.ios.imageName;
45
- }
46
- if (pushConfig.ios.callsHistory !== undefined) {
47
- iosOptions.callsHistory = pushConfig.ios.callsHistory;
48
- }
49
- if (pushConfig.ios.displayCallTimeout !== undefined) {
50
- iosOptions.displayCallTimeout = pushConfig.ios.displayCallTimeout;
51
- }
52
-
53
- if (Object.keys(iosOptions).length > 0) {
54
- callingExpOptions.ios = iosOptions;
55
- }
56
- }
57
-
58
- const androidOptions: CallingExpOptions['android'] = {};
59
- if (pushConfig?.android) {
60
- if (pushConfig.android.incomingChannel) {
61
- androidOptions.incomingChannel = pushConfig.android.incomingChannel;
62
- }
63
- if (pushConfig.android.titleTransformer) {
64
- androidOptions.titleTransformer = pushConfig.android.titleTransformer;
65
- }
66
- if (pushConfig.android.subtitleTransformer) {
67
- androidOptions.subtitleTransformer =
68
- pushConfig.android.subtitleTransformer;
69
- }
70
- }
71
-
72
- if (foregroundServiceConfig.android.channel) {
73
- androidOptions.ongoingChannel = foregroundServiceConfig.android.channel;
74
- }
75
-
76
- if (Object.keys(androidOptions).length > 0) {
77
- callingExpOptions.android = androidOptions;
78
- }
79
-
80
- if (pushConfig?.shouldRejectCallWhenBusy !== undefined) {
81
- callingExpOptions.shouldRejectCallWhenBusy =
82
- pushConfig.shouldRejectCallWhenBusy;
83
- }
84
-
85
- if (pushConfig?.enableOngoingCalls !== undefined) {
86
- callingExpOptions.enableOngoingCalls = pushConfig?.enableOngoingCalls;
87
- }
88
-
89
- return callingExpOptions;
90
- }
@@ -1,117 +0,0 @@
1
- import { pushAcceptedIncomingCallCId$ } from './internal/rxSubjects';
2
- import { videoLoggerSystem } from '@stream-io/video-client';
3
- import type { StreamVideoConfig } from '../StreamVideoRN/types';
4
- import {
5
- clearPushWSEventSubscriptions,
6
- processCallFromPushInBackground,
7
- } from './internal/utils';
8
- import { setPushLogoutCallback } from '../internal/pushLogoutCallback';
9
- import { resolvePendingAudioSession } from '../internal/audioSessionPromise';
10
- import {
11
- getCallingxLib,
12
- type EventData,
13
- type EventParams,
14
- } from './libs/callingx';
15
- import { Platform } from 'react-native';
16
-
17
- type PushConfig = NonNullable<StreamVideoConfig['push']>;
18
-
19
- const logger = videoLoggerSystem.getLogger('Callingx');
20
-
21
- /**
22
- * This hook is used to listen to callkeep events and do the necessary actions
23
- */
24
- export function setupCallingExpEvents(pushConfig: NonNullable<PushConfig>) {
25
- const hasPushProvider =
26
- (Platform.OS === 'android' && pushConfig.android?.pushProviderName) ||
27
- (Platform.OS === 'ios' && pushConfig.ios?.pushProviderName);
28
-
29
- if (!hasPushProvider) {
30
- return;
31
- }
32
-
33
- const callingx = getCallingxLib();
34
-
35
- const { remove: removeAnswerCall } = callingx.addEventListener(
36
- 'answerCall',
37
- onAcceptCall,
38
- );
39
- const { remove: removeEndCall } = callingx.addEventListener(
40
- 'endCall',
41
- onEndCall(pushConfig),
42
- );
43
-
44
- const { remove: removeDidActivateAudioSession } = callingx.addEventListener(
45
- 'didActivateAudioSession',
46
- onDidActivateAudioSession,
47
- );
48
- const { remove: removeDidDeactivateAudioSession } = callingx.addEventListener(
49
- 'didDeactivateAudioSession',
50
- onDidDeactivateAudioSession,
51
- );
52
-
53
- //NOTE: until getInitialEvents invocation, events are delayed and won't be sent to event listeners, this is a way to make sure none of required events are missed
54
- //in most cases there will be no delayed answers or ends, but it we don't want to miss any of them
55
- const events = callingx.getInitialEvents();
56
- events.forEach((event: EventData) => {
57
- const { eventName, params } = event;
58
- if (eventName === 'answerCall') {
59
- logger.debug(`answerCall delayed event callId: ${params?.callId}`);
60
- onAcceptCall(params as EventParams['answerCall']);
61
- } else if (eventName === 'endCall') {
62
- logger.debug(`endCall delayed event callId: ${params?.callId}`);
63
- onEndCall(pushConfig)(params as EventParams['endCall']);
64
- } else if (eventName === 'didActivateAudioSession') {
65
- onDidActivateAudioSession();
66
- } else if (eventName === 'didDeactivateAudioSession') {
67
- onDidDeactivateAudioSession();
68
- }
69
- });
70
-
71
- setPushLogoutCallback(async () => {
72
- removeAnswerCall();
73
- removeEndCall();
74
- removeDidActivateAudioSession();
75
- removeDidDeactivateAudioSession();
76
- });
77
- }
78
-
79
- const onDidActivateAudioSession = () => {
80
- logger.debug('callingExpDidActivateAudioSession');
81
- resolvePendingAudioSession();
82
- };
83
-
84
- const onDidDeactivateAudioSession = () => {
85
- logger.debug('callingExpDidDeactivateAudioSession');
86
- };
87
-
88
- const onAcceptCall = ({
89
- callId: call_cid,
90
- source,
91
- }: EventParams['answerCall']) => {
92
- logger.debug(`onAcceptCall event callId: ${call_cid} source: ${source}`);
93
-
94
- if (source === 'app' || !call_cid) {
95
- //we only need to process the call if the call was answered from the system
96
- return;
97
- }
98
-
99
- clearPushWSEventSubscriptions(call_cid);
100
- // to process the call in the app
101
- pushAcceptedIncomingCallCId$.next(call_cid);
102
- };
103
-
104
- const onEndCall =
105
- (pushConfig: PushConfig) =>
106
- async ({ callId: call_cid, source }: EventParams['endCall']) => {
107
- logger.debug(`onEndCall event callId: ${call_cid} source: ${source}`);
108
-
109
- if (source === 'app' || !call_cid) {
110
- //we only need to process the call if the call was rejected from the system
111
- return;
112
- }
113
-
114
- clearPushWSEventSubscriptions(call_cid);
115
-
116
- await processCallFromPushInBackground(pushConfig, call_cid, 'decline');
117
- };