@stream-io/react-native-callingx 0.1.1-beta.1 → 0.2.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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,21 @@
1
+ # Changelog
2
+
3
+ This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
+
5
+ ## [0.2.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/react-native-callingx-0.1.1...@stream-io/react-native-callingx-0.2.0) (2026-05-08)
6
+
7
+ ### Features
8
+
9
+ - ongoing calls adjustments ([#2209](https://github.com/GetStream/stream-video-js/issues/2209)) ([16e2331](https://github.com/GetStream/stream-video-js/commit/16e23319bb352d5b28a6a67c5fa97dbdf757ba1a))
10
+
11
+ ## [0.1.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/react-native-callingx-0.1.0...@stream-io/react-native-callingx-0.1.1) (2026-04-09)
12
+
13
+ ### Bug Fixes
14
+
15
+ - callingx docs update ([#2195](https://github.com/GetStream/stream-video-js/issues/2195)) ([7a6b632](https://github.com/GetStream/stream-video-js/commit/7a6b632270ec1187236a0e4e5c5396a98a20fd16))
16
+
17
+ ## 0.1.0 (2026-04-09)
18
+
19
+ ### Features
20
+
21
+ - callkit/telecom integration ([#2028](https://github.com/GetStream/stream-video-js/issues/2028)) ([d579acd](https://github.com/GetStream/stream-video-js/commit/d579acd1975fb4945e40452b27e372694c737628))
package/README.md CHANGED
@@ -1,395 +1,83 @@
1
- # react-native-callingx
1
+ # @stream-io/react-native-callingx
2
2
 
3
- A React Native Turbo Module for seamless native calling integration. This library provides a unified API to integrate with **CallKit** on iOS and the **Telecom/ConnectionService** API on Android, enabling your app to display system-level calling UI and interact with native call controls.
3
+ React Native native-calling bridge for:
4
4
 
5
- ## Features
5
+ - iOS CallKit
6
+ - Android Telecom/ConnectionService
6
7
 
7
- - 📞 **Incoming call UI** — Display native incoming call screens (even when the app is killed)
8
- - 📲 **Outgoing call registration** — Register outgoing calls with the system
9
- - 🎛️ **Call controls** — Mute, hold, end calls with native system integration
10
- - 🔔 **Custom notifications** — Configurable Android notification channels
11
- - ⚡ **Turbo Module** — Built with the New Architecture for optimal performance
12
- - 📱 **Background support** — Handle calls when the app is backgrounded or killed
13
-
14
- ## Requirements
15
-
16
- - React Native 0.73+ (New Architecture / Turbo Modules)
17
- - iOS 13.0+
18
- - Android API 26+ (Android 8.0 Oreo)
19
-
20
- ## Installation
8
+ ## Install
21
9
 
22
10
  ```sh
23
- npm install @stream-io/react-native-callingx
24
- # or
25
11
  yarn add @stream-io/react-native-callingx
26
12
  ```
27
13
 
28
- ### iOS Setup
29
-
30
- 1. Add the required background modes to your `Info.plist`:
31
-
32
- ```xml
33
- <key>UIBackgroundModes</key>
34
- <array>
35
- <string>voip</string>
36
- <string>audio</string>
37
- </array>
38
- ```
39
-
40
- 2. Run pod install:
14
+ Then run iOS pods:
41
15
 
42
16
  ```sh
43
17
  cd ios && pod install
44
18
  ```
45
19
 
46
- 3. For VoIP push notifications, configure your `AppDelegate` to report incoming calls:
47
-
48
- ```objc
49
- #import <Callingx/CallingxPublic.h>
50
-
51
- - (void)pushRegistry:(PKPushRegistry *)registry
52
- didReceiveIncomingPushWithPayload:(PKPushPayload *)payload
53
- forType:(PKPushType)type
54
- withCompletionHandler:(void (^)(void))completion {
55
-
56
- // Extract call information from payload
57
- NSString *callId = payload.dictionaryPayload[@"call_id"];
58
- NSString *callerName = payload.dictionaryPayload[@"caller_name"];
59
- NSString *handle = payload.dictionaryPayload[@"handle"];
60
- BOOL hasVideo = [payload.dictionaryPayload[@"has_video"] boolValue];
61
-
62
- [Callingx reportNewIncomingCall:callId
63
- handle:handle
64
- handleType:@"generic"
65
- hasVideo:hasVideo
66
- localizedCallerName:callerName
67
- supportsHolding:YES
68
- supportsDTMF:NO
69
- supportsGrouping:NO
70
- supportsUngrouping:NO
71
- payload:payload.dictionaryPayload
72
- withCompletionHandler:completion];
73
- }
74
- ```
75
-
76
- ### Android Setup
20
+ ## Quick start
77
21
 
78
- ## Usage
22
+ ```ts
23
+ import { CallingxModule } from '@stream-io/react-native-callingx';
79
24
 
80
- ### Setup
81
-
82
- Initialize the module with platform-specific configuration:
83
-
84
- ```typescript
85
- import { CallingxModule } from 'react-native-callingx';
86
-
87
- // Setup must be called before any other method
88
25
  CallingxModule.setup({
89
26
  ios: {
90
- appName: 'My App',
91
27
  supportsVideo: true,
92
- maximumCallsPerCallGroup: 1,
93
- maximumCallGroups: 1,
94
- handleType: 'generic', // 'generic' | 'number' | 'phone' | 'email'
28
+ callsHistory: false,
95
29
  },
96
30
  android: {
97
31
  incomingChannel: {
98
- id: 'incoming_calls',
99
- name: 'Incoming Calls',
100
- sound: 'ringtone', // optional custom sound
101
- vibration: true,
32
+ id: 'incoming_calls_channel',
33
+ name: 'Incoming calls',
102
34
  },
103
- outgoingChannel: {
104
- id: 'ongoing_calls',
105
- name: 'Ongoing Calls',
106
- },
107
- // Optional: transform display text
108
- titleTransformer: (name) => `Call from ${name}`,
109
- subtitleTransformer: (phoneNumber) => phoneNumber,
110
35
  },
111
36
  });
112
- ```
113
-
114
- ### Request Permissions
115
37
 
116
- Before displaying calls, request the required permissions:
117
-
118
- ```typescript
119
- const permissions = await CallingxModule.requestPermissions();
120
- console.log('Audio permission:', permissions.recordAudio);
121
- console.log('Notification permission:', permissions.postNotifications);
122
- ```
123
-
124
- ### Display Incoming Call
125
-
126
- Show the native incoming call UI:
127
-
128
- ```typescript
129
38
  await CallingxModule.displayIncomingCall(
130
- 'unique-call-id',
131
- '+1234567890', // phone number / handle
132
- 'John Doe', // caller name
133
- true, // has video
134
- );
135
- ```
136
-
137
- ### Start Outgoing Call
138
-
139
- Register an outgoing call with the system:
140
-
141
- ```typescript
142
- await CallingxModule.startCall(
143
- 'unique-call-id',
144
- '+1234567890',
39
+ 'call-id',
40
+ '+123456789',
145
41
  'John Doe',
146
- false, // audio only
42
+ true,
147
43
  );
148
44
  ```
149
45
 
150
- ### Answer Call
151
-
152
- Answer an incoming call programmatically:
153
-
154
- ```typescript
155
- await CallingxModule.answerIncomingCall('unique-call-id');
156
- ```
157
-
158
- ### Activate Call
159
-
160
- Mark a call as active (connected):
161
-
162
- ```typescript
163
- await CallingxModule.setCurrentCallActive('unique-call-id');
164
- ```
165
-
166
- ### End Call
167
-
168
- End a call with a specific reason:
169
-
170
- ```typescript
171
- import type { EndCallReason } from 'react-native-callingx';
172
-
173
- // Available reasons:
174
- // 'local' | 'remote' | 'rejected' | 'busy' | 'answeredElsewhere' |
175
- // 'missed' | 'error' | 'canceled' | 'restricted' | 'unknown'
176
- await CallingxModule.endCallWithReason('unique-call-id', 'remote');
177
- ```
178
-
179
- ### Mute/Unmute
180
-
181
- Toggle call mute state:
182
-
183
- ```typescript
184
- await CallingxModule.setMutedCall('unique-call-id', true); // mute
185
- await CallingxModule.setMutedCall('unique-call-id', false); // unmute
186
- ```
187
-
188
- ### Hold/Unhold
189
-
190
- Toggle call hold state:
191
-
192
- ```typescript
193
- await CallingxModule.setOnHoldCall('unique-call-id', true); // hold
194
- await CallingxModule.setOnHoldCall('unique-call-id', false); // unhold
195
- ```
196
-
197
- ### Update Display
198
-
199
- Update the caller information during a call:
200
-
201
- ```typescript
202
- await CallingxModule.updateDisplay(
203
- 'unique-call-id',
204
- '+1234567890',
205
- 'Updated Name',
206
- );
207
- ```
208
-
209
- ### Event Listeners
210
-
211
- Subscribe to call events:
212
-
213
- ```typescript
214
- import { CallingxModule } from 'react-native-callingx';
215
- import type { EventName } from 'react-native-callingx';
216
-
217
- // Answer event - user answered from system UI
218
- const answerSubscription = CallingxModule.addEventListener(
219
- 'answerCall',
220
- (params) => {
221
- console.log('Call answered:', params.callId);
222
- },
223
- );
224
-
225
- // End event - call ended
226
- const endSubscription = CallingxModule.addEventListener('endCall', (params) => {
227
- console.log('Call ended:', params.callId, 'Cause:', params.cause);
228
- });
229
-
230
- // Hold toggle event
231
- const holdSubscription = CallingxModule.addEventListener(
232
- 'didToggleHoldCallAction',
233
- (params) => {
234
- console.log('Hold toggled:', params.callId, 'On hold:', params.hold);
235
- },
236
- );
237
-
238
- // Mute toggle event
239
- const muteSubscription = CallingxModule.addEventListener(
240
- 'didPerformSetMutedCallAction',
241
- (params) => {
242
- console.log('Mute toggled:', params.callId, 'Muted:', params.muted);
243
- },
244
- );
245
-
246
- // Start call action (outgoing call initiated from system)
247
- const startSubscription = CallingxModule.addEventListener(
248
- 'didReceiveStartCallAction',
249
- (params) => {
250
- console.log('Start call action:', params.callId);
251
- },
252
- );
253
-
254
- // Clean up when done
255
- answerSubscription.remove();
256
- endSubscription.remove();
257
- // ... remove other subscriptions
258
- ```
259
-
260
- ### Handle Initial Events
261
-
262
- When the app is launched from a killed state by a call action, retrieve queued events:
263
-
264
- ```typescript
265
- // Get events that occurred before the module was initialized
266
- const initialEvents = CallingxModule.getInitialEvents();
267
- initialEvents.forEach((event) => {
268
- console.log('Initial event:', event.eventName, event.params);
269
- });
270
-
271
- // Clear initial events after processing
272
- await CallingxModule.clearInitialEvents();
273
- ```
274
-
275
- ### Background Tasks (Android)
276
-
277
- Run background tasks for call-related operations:
278
-
279
- ```typescript
280
- // Start a managed background task
281
- await CallingxModule.startBackgroundTask(async (taskData, stopTask) => {
282
- try {
283
- // Perform background work (e.g., connect to call server)
284
- await connectToCallServer();
285
- } finally {
286
- stopTask(); // Always call when done
287
- }
288
- });
289
-
290
- // Or stop manually
291
- await CallingxModule.stopBackgroundTask();
292
- ```
293
-
294
- ## API Reference
295
-
296
- ### CallingxModule
297
-
298
- | Method | Description |
299
- | ---------------------------------------------------------------- | ---------------------------------------------------- |
300
- | `setup(options)` | Initialize the module with platform-specific options |
301
- | `requestPermissions()` | Request required permissions (audio, notifications) |
302
- | `checkPermissions()` | Check current permission status |
303
- | `displayIncomingCall(callId, phoneNumber, callerName, hasVideo)` | Display incoming call UI |
304
- | `answerIncomingCall(callId)` | Answer an incoming call |
305
- | `startCall(callId, phoneNumber, callerName, hasVideo)` | Register an outgoing call |
306
- | `setCurrentCallActive(callId)` | Mark call as active/connected |
307
- | `updateDisplay(callId, phoneNumber, callerName)` | Update caller display info |
308
- | `endCallWithReason(callId, reason)` | End call with specified reason |
309
- | `setMutedCall(callId, isMuted)` | Toggle call mute state |
310
- | `setOnHoldCall(callId, isOnHold)` | Toggle call hold state |
311
- | `addEventListener(eventName, callback)` | Subscribe to call events |
312
- | `getInitialEvents()` | Get queued events from app launch |
313
- | `clearInitialEvents()` | Clear queued initial events |
314
- | `startBackgroundTask(taskProvider)` | Start Android background task |
315
- | `stopBackgroundTask()` | Stop Android background task |
316
- | `log(message, level)` | Log message to native console |
317
-
318
- ### Events
319
-
320
- | Event | Parameters | Description |
321
- | ------------------------------ | ------------------- | --------------------------------- |
322
- | `answerCall` | `{ callId }` | User answered call from system UI |
323
- | `endCall` | `{ callId, cause }` | Call ended |
324
- | `didToggleHoldCallAction` | `{ callId, hold }` | Hold state changed |
325
- | `didPerformSetMutedCallAction` | `{ callId, muted }` | Mute state changed |
326
- | `didReceiveStartCallAction` | `{ callId }` | Outgoing call action received |
327
-
328
- ### Types
329
-
330
- ```typescript
331
- type EndCallReason =
332
- | 'local' // Call ended by the local user (e.g., hanging up)
333
- | 'remote' // Call ended by the remote party, or outgoing not answered
334
- | 'rejected' // Call was rejected/declined
335
- | 'busy' // Remote party was busy
336
- | 'answeredElsewhere' // Answered on another device
337
- | 'missed' // No response to an incoming call
338
- | 'error' // Call failed due to an error (e.g., network issue)
339
- | 'canceled' // Call canceled before the remote party could answer
340
- | 'restricted' // Call restricted (e.g., airplane mode)
341
- | 'unknown'; // Unknown or unspecified disconnect reason
342
-
343
- type CallingExpiOSOptions = {
344
- appName: string;
345
- supportsVideo?: boolean;
346
- maximumCallsPerCallGroup?: number;
347
- maximumCallGroups?: number;
348
- handleType?: 'generic' | 'number' | 'phone' | 'email';
349
- };
350
-
351
- type CallingExpAndroidOptions = {
352
- incomingChannel?: {
353
- id: string;
354
- name: string;
355
- sound?: string;
356
- vibration?: boolean;
357
- };
358
- outgoingChannel?: {
359
- id: string;
360
- name: string;
361
- sound?: string;
362
- vibration?: boolean;
363
- };
364
- };
365
-
366
- type PermissionsResult = {
367
- recordAudio: boolean;
368
- postNotifications: boolean;
369
- };
370
- ```
371
-
372
- ## Troubleshooting
373
-
374
- ### iOS
375
-
376
- - **Incoming call not showing**: Ensure `voip` background mode is enabled and VoIP push certificate is configured
377
- - **CallKit errors**: Check that `appName` is set in setup options
378
- - **Audio issues**: The module automatically configures the audio session, but ensure no conflicts with other audio libraries
46
+ ## Main APIs
379
47
 
380
- ### Android
48
+ - `setup(options)` - required before any call action.
49
+ - `displayIncomingCall(callId, phoneNumber, callerName, hasVideo)`.
50
+ - `startCall(callId, phoneNumber, callerName, hasVideo)`.
51
+ - `setCurrentCallActive(callId)`.
52
+ - `updateDisplay(callId, phoneNumber, callerName, incoming)`.
53
+ - `endCallWithReason(callId, reason)`.
54
+ - `setMutedCall(callId, isMuted)`.
55
+ - `setOnHoldCall(callId, isOnHold)`.
56
+ - `addEventListener(eventName, callback)`.
57
+ - `getInitialEvents()` and `getInitialVoipEvents()`.
58
+ - `registerBackgroundTask(taskProvider)` / `startBackgroundTask()` / `stopBackgroundTask()` (Android).
381
59
 
382
- - **Notifications not showing**: Check POST_NOTIFICATIONS permission on Android 13+
383
- - **Call not answered on tap**: Ensure `handleCallingIntent` is called in both `onCreate` and `onNewIntent` in your MainActivity
60
+ ## Event names
384
61
 
385
- ## Contributing
62
+ Call events:
386
63
 
387
- See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
64
+ - `answerCall`
65
+ - `endCall`
66
+ - `didDisplayIncomingCall`
67
+ - `didToggleHoldCallAction`
68
+ - `didPerformSetMutedCallAction`
69
+ - `didChangeAudioRoute`
70
+ - `didReceiveStartCallAction`
71
+ - `didActivateAudioSession`
72
+ - `didDeactivateAudioSession`
388
73
 
389
- ## License
74
+ VoIP events:
390
75
 
391
- MIT
76
+ - `voipNotificationsRegistered`
77
+ - `voipNotificationReceived`
392
78
 
393
- ---
79
+ ## Notes
394
80
 
395
- Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
81
+ - Import from `@stream-io/react-native-callingx`.
82
+ - iOS-only helpers: `registerVoipToken`, `fulfillAnswerCallAction`, `fulfillEndCallAction`.
83
+ - Android helpers: `canPostNotifications`, `isOngoingCallsEnabled`.
@@ -24,6 +24,7 @@ import io.getstream.rn.callingx.notifications.NotificationsConfig
24
24
  import io.getstream.rn.callingx.repo.CallRepository
25
25
  import io.getstream.rn.callingx.repo.CallRepositoryFactory
26
26
  import io.getstream.rn.callingx.utils.SettingsStore
27
+ import kotlinx.coroutines.CancellationException
27
28
  import kotlinx.coroutines.CoroutineScope
28
29
  import kotlinx.coroutines.SupervisorJob
29
30
  import kotlinx.coroutines.cancel
@@ -48,6 +49,8 @@ class CallService : Service(), CallRepository.Listener {
48
49
  companion object {
49
50
  private const val TAG = "[Callingx] CallService"
50
51
 
52
+ internal const val DEFAULT_DISPLAY_NAME = "Unknown Caller"
53
+
51
54
  internal const val EXTRA_CALL_ID = "extra_call_id"
52
55
  internal const val EXTRA_NAME = "extra_name"
53
56
  internal const val EXTRA_URI = "extra_uri"
@@ -104,8 +107,12 @@ class CallService : Service(), CallRepository.Listener {
104
107
  )
105
108
  return
106
109
  }
110
+
111
+ val createdById = data["created_by_id"]
112
+ val createdName = data["created_by_display_name"].orEmpty()
113
+ val displayName = data["call_display_name"].orEmpty()
114
+ val callDisplayName = displayName.ifEmpty { createdName.ifEmpty { DEFAULT_DISPLAY_NAME } }
107
115
 
108
- val callName = data["created_by_display_name"].orEmpty()
109
116
  val isVideo = data["video"] == "true"
110
117
 
111
118
  CallRegistrationStore.trackCallRegistration(callCid, null)
@@ -114,8 +121,8 @@ class CallService : Service(), CallRepository.Listener {
114
121
  Intent(context, CallService::class.java).apply {
115
122
  action = ACTION_INCOMING_CALL
116
123
  putExtra(EXTRA_CALL_ID, callCid)
117
- putExtra(EXTRA_URI, callCid.toUri())
118
- putExtra(EXTRA_NAME, callName)
124
+ putExtra(EXTRA_URI, createdById?.toUri() ?: callDisplayName.toUri())
125
+ putExtra(EXTRA_NAME, callDisplayName)
119
126
  putExtra(EXTRA_IS_VIDEO, isVideo)
120
127
  }
121
128
 
@@ -497,6 +504,12 @@ class CallService : Service(), CallRepository.Listener {
497
504
  callInfo.isVideo,
498
505
  callInfo.displayOptions,
499
506
  )
507
+ } catch (e: CancellationException) {
508
+ // Swallow cancellation: nothing runs after this catch, and nobody awaits this launch.
509
+ debugLog(
510
+ TAG,
511
+ "[service] registerCall: Registration canceled for ${callInfo.callId} during teardown"
512
+ )
500
513
  } catch (e: Exception) {
501
514
  Log.e(TAG, "[service] registerCall: Error registering call: ${e.message}")
502
515
 
@@ -317,25 +317,19 @@ class CallNotificationManager(
317
317
  if (call.isIncoming() && !call.isActive && optimisticState == OptimisticState.NONE) {
318
318
  return NotificationCompat.CallStyle.forIncomingCall(
319
319
  caller,
320
- NotificationIntentFactory.getPendingBroadcastIntent(
321
- context,
322
- CallingxModuleImpl.CALL_END_ACTION,
323
- call.id
324
- ) {
325
- putExtra(
326
- CallingxModuleImpl.EXTRA_DISCONNECT_CAUSE,
327
- getDisconnectCauseString(DisconnectCause(DisconnectCause.REJECTED))
328
- )
329
- putExtra(
330
- CallingxModuleImpl.EXTRA_SOURCE,
331
- CallRepository.EventSource.SYS.name.lowercase()
332
- )
333
- },
320
+ NotificationIntentFactory.getPendingNotificationIntent(
321
+ context,
322
+ CallingxModuleImpl.CALL_END_ACTION,
323
+ call.id,
324
+ CallRepository.EventSource.SYS.name.lowercase(),
325
+ false
326
+ ),
334
327
  NotificationIntentFactory.getPendingNotificationIntent(
335
328
  context,
336
329
  CallingxModuleImpl.CALL_ANSWERED_ACTION,
337
330
  call.id,
338
- CallRepository.EventSource.SYS.name.lowercase()
331
+ CallRepository.EventSource.SYS.name.lowercase(),
332
+ true
339
333
  )
340
334
  )
341
335
  }
@@ -22,10 +22,11 @@ object NotificationIntentFactory {
22
22
  context: Context,
23
23
  action: String,
24
24
  callId: String,
25
- source: String
25
+ source: String,
26
+ includeLaunchActivity: Boolean
26
27
  ): PendingIntent {
27
28
  return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
28
- getReceiverActivityIntent(context, action, callId, source)
29
+ getReceiverActivityIntent(context, action, callId, source, includeLaunchActivity)
29
30
  } else {
30
31
  getPendingServiceIntent(context, action, callId, source)
31
32
  }
@@ -47,7 +48,7 @@ object NotificationIntentFactory {
47
48
  )
48
49
  }
49
50
 
50
- fun getReceiverActivityIntent(context: Context, action: String, callId: String, source: String): PendingIntent {
51
+ fun getReceiverActivityIntent(context: Context, action: String, callId: String, source: String, includeLaunchActivity: Boolean): PendingIntent {
51
52
  val receiverIntent =
52
53
  Intent(context, NotificationReceiverActivity::class.java).apply {
53
54
  this.action = action
@@ -57,14 +58,25 @@ object NotificationIntentFactory {
57
58
 
58
59
  val launchActivity = context.packageManager.getLaunchIntentForPackage(context.packageName)
59
60
  val launchActivityIntent =
60
- Intent(launchActivity).apply {
61
- addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP)
61
+ launchActivity?.let { base ->
62
+ Intent(base).apply {
63
+ addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP)
64
+ }
65
+ }
66
+
67
+ // intents are started in order and build a synthetic back stack
68
+ // the last intent is the one on top, so the launch activity should come first
69
+ val intents =
70
+ if (includeLaunchActivity && launchActivityIntent != null) {
71
+ arrayOf(launchActivityIntent, receiverIntent)
72
+ } else {
73
+ arrayOf(receiverIntent)
62
74
  }
63
75
 
64
76
  return PendingIntent.getActivities(
65
77
  context,
66
78
  requestCodeFor(callId, REQUEST_CODE_RECEIVER_ACTIVITY),
67
- arrayOf(launchActivityIntent, receiverIntent),
79
+ intents,
68
80
  PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
69
81
  )
70
82
  }
@@ -3,8 +3,10 @@ package io.getstream.rn.callingx.notifications
3
3
  import android.app.Activity
4
4
  import android.content.Intent
5
5
  import android.os.Bundle
6
+ import android.telecom.DisconnectCause
6
7
  import io.getstream.rn.callingx.CallingxModuleImpl
7
8
  import io.getstream.rn.callingx.debugLog
9
+ import io.getstream.rn.callingx.getDisconnectCauseString
8
10
 
9
11
  // For Android 12+
10
12
  class NotificationReceiverActivity : Activity() {
@@ -21,33 +23,54 @@ class NotificationReceiverActivity : Activity() {
21
23
  finish()
22
24
  }
23
25
 
24
- //re-send intent from notification to the turbo module
25
26
  private fun handleIntent(intent: Intent?) {
26
- if (intent == null) {
27
- return
27
+ val nonNullIntent = intent ?: return
28
+ val action = nonNullIntent.action ?: return
29
+
30
+ when (action) {
31
+ CallingxModuleImpl.CALL_ANSWERED_ACTION -> onCallAnswered(nonNullIntent)
32
+ CallingxModuleImpl.CALL_END_ACTION -> onCallEnded(nonNullIntent)
28
33
  }
34
+ }
29
35
 
30
- if (intent.action == CallingxModuleImpl.CALL_ANSWERED_ACTION) {
31
- debugLog("[Callingx] NotificationReceiverActivity", "[receiver] answered call action")
32
- val callId = intent.getStringExtra(CallingxModuleImpl.EXTRA_CALL_ID)
33
- val source = intent.getStringExtra(CallingxModuleImpl.EXTRA_SOURCE)
34
-
35
- if (callId != null) {
36
- Intent(CallingxModuleImpl.CALL_OPTIMISTIC_ACCEPT_ACTION)
37
- .apply {
38
- setPackage(packageName)
39
- putExtra(CallingxModuleImpl.EXTRA_CALL_ID, callId)
40
- }
41
- .also { sendBroadcast(it) }
42
- }
36
+ private fun onCallAnswered(intent: Intent) {
37
+ debugLog("[Callingx] NotificationReceiverActivity", "[receiver] answered call action")
38
+ val callId = intent.getStringExtra(CallingxModuleImpl.EXTRA_CALL_ID)
39
+ val source = intent.getStringExtra(CallingxModuleImpl.EXTRA_SOURCE)
43
40
 
44
- Intent(CallingxModuleImpl.CALL_ANSWERED_ACTION)
41
+ if (callId != null) {
42
+ Intent(CallingxModuleImpl.CALL_OPTIMISTIC_ACCEPT_ACTION)
45
43
  .apply {
46
44
  setPackage(packageName)
47
45
  putExtra(CallingxModuleImpl.EXTRA_CALL_ID, callId)
48
- putExtra(CallingxModuleImpl.EXTRA_SOURCE, source)
49
46
  }
50
47
  .also { sendBroadcast(it) }
51
48
  }
49
+
50
+ Intent(CallingxModuleImpl.CALL_ANSWERED_ACTION)
51
+ .apply {
52
+ setPackage(packageName)
53
+ putExtra(CallingxModuleImpl.EXTRA_CALL_ID, callId)
54
+ putExtra(CallingxModuleImpl.EXTRA_SOURCE, source)
55
+ }
56
+ .also { sendBroadcast(it) }
57
+ }
58
+
59
+ private fun onCallEnded(intent: Intent) {
60
+ debugLog("[Callingx] NotificationReceiverActivity", "[receiver] rejected call action")
61
+ val callId = intent.getStringExtra(CallingxModuleImpl.EXTRA_CALL_ID)
62
+ val source = intent.getStringExtra(CallingxModuleImpl.EXTRA_SOURCE)
63
+
64
+ Intent(CallingxModuleImpl.CALL_END_ACTION)
65
+ .apply {
66
+ setPackage(packageName)
67
+ putExtra(CallingxModuleImpl.EXTRA_CALL_ID, callId)
68
+ putExtra(CallingxModuleImpl.EXTRA_SOURCE, source)
69
+ putExtra(
70
+ CallingxModuleImpl.EXTRA_DISCONNECT_CAUSE,
71
+ getDisconnectCauseString(DisconnectCause(DisconnectCause.REJECTED))
72
+ )
73
+ }
74
+ .also { sendBroadcast(it) }
52
75
  }
53
76
  }
@@ -3,8 +3,10 @@ package io.getstream.rn.callingx.notifications
3
3
  import android.app.Service
4
4
  import android.content.Intent
5
5
  import android.os.IBinder
6
+ import android.telecom.DisconnectCause
6
7
  import android.util.Log
7
8
  import io.getstream.rn.callingx.CallingxModuleImpl
9
+ import io.getstream.rn.callingx.getDisconnectCauseString
8
10
 
9
11
  class NotificationReceiverService : Service() {
10
12
 
@@ -23,6 +25,7 @@ class NotificationReceiverService : Service() {
23
25
 
24
26
  when (action) {
25
27
  CallingxModuleImpl.CALL_ANSWERED_ACTION -> onCallAnswered(intent)
28
+ CallingxModuleImpl.CALL_END_ACTION -> onCallEnded(intent)
26
29
  }
27
30
 
28
31
  stopSelf(startId)
@@ -60,4 +63,25 @@ class NotificationReceiverService : Service() {
60
63
  }
61
64
  }
62
65
  }
66
+
67
+ /** Mirrors [NotificationReceiverActivity] on API levels below 33 where the service receives notification actions. */
68
+ private fun onCallEnded(intent: Intent) {
69
+ val callId = intent.getStringExtra(CallingxModuleImpl.EXTRA_CALL_ID)
70
+ val source = intent.getStringExtra(CallingxModuleImpl.EXTRA_SOURCE)
71
+ try {
72
+ Intent(CallingxModuleImpl.CALL_END_ACTION)
73
+ .apply {
74
+ setPackage(packageName)
75
+ putExtra(CallingxModuleImpl.EXTRA_CALL_ID, callId)
76
+ putExtra(CallingxModuleImpl.EXTRA_SOURCE, source)
77
+ putExtra(
78
+ CallingxModuleImpl.EXTRA_DISCONNECT_CAUSE,
79
+ getDisconnectCauseString(DisconnectCause(DisconnectCause.REJECTED))
80
+ )
81
+ }
82
+ .also { sendBroadcast(it) }
83
+ } catch (e: Exception) {
84
+ Log.e(TAG, "Error sending call end intent", e)
85
+ }
86
+ }
63
87
  }
@@ -14,6 +14,7 @@ import androidx.core.telecom.CallsManager
14
14
  import io.getstream.rn.callingx.debugLog
15
15
  import io.getstream.rn.callingx.model.Call
16
16
  import io.getstream.rn.callingx.model.CallAction
17
+ import kotlinx.coroutines.CancellationException
17
18
  import kotlinx.coroutines.Job
18
19
  import kotlinx.coroutines.cancel
19
20
  import kotlinx.coroutines.channels.Channel
@@ -213,6 +214,12 @@ class TelecomCallRepository(context: Context) : CallRepository(context) {
213
214
  TAG,
214
215
  "[repository] registerCall: Call $callId scope ended normally"
215
216
  )
217
+ } catch (e: CancellationException) {
218
+ debugLog(
219
+ TAG,
220
+ "[repository] registerCall: Registration canceled for $callId during teardown"
221
+ )
222
+ throw e
216
223
  } catch (e: Exception) {
217
224
  Log.e(TAG, "[repository] registerCall: Error registering call $callId", e)
218
225
  throw e
@@ -8,7 +8,10 @@ import { androidEndCallReasonMap, defaultAndroidOptions, defaultiOSOptions, iosE
8
8
  import { isVoipEvent } from "./utils/utils.js";
9
9
  class CallingxModule {
10
10
  _isSetup = false;
11
- _isOngoingCallsEnabled = false;
11
+ _isOngoingCallsEnabled = {
12
+ android: false,
13
+ ios: false
14
+ };
12
15
  _isHeadlessTaskRegistered = false;
13
16
  titleTransformer = memberName => memberName;
14
17
  eventManager = new EventManager();
@@ -20,7 +23,7 @@ class CallingxModule {
20
23
  return NativeCallingModule.canPostNotifications();
21
24
  }
22
25
  get isOngoingCallsEnabled() {
23
- return this._isOngoingCallsEnabled;
26
+ return Platform.OS === 'ios' ? this._isOngoingCallsEnabled.ios : this._isOngoingCallsEnabled.android;
24
27
  }
25
28
  get isSetup() {
26
29
  return this._isSetup;
@@ -29,7 +32,10 @@ class CallingxModule {
29
32
  if (this._isSetup) {
30
33
  return;
31
34
  }
32
- this._isOngoingCallsEnabled = options.enableOngoingCalls ?? false;
35
+ this._isOngoingCallsEnabled = {
36
+ android: options.android?.enableOngoingCalls ?? false,
37
+ ios: options.ios?.enableOngoingCalls ?? false
38
+ };
33
39
  this.setShouldRejectCallWhenBusy(options.shouldRejectCallWhenBusy ?? false);
34
40
  if (Platform.OS === 'ios') {
35
41
  NativeCallingModule.setupiOS({
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","NativeCallingModule","HEADLESS_TASK_NAME","registerHeadlessTask","setHeadlessTask","EventManager","androidEndCallReasonMap","defaultAndroidOptions","defaultiOSOptions","iosEndCallReasonMap","isVoipEvent","CallingxModule","_isSetup","_isOngoingCallsEnabled","_isHeadlessTaskRegistered","titleTransformer","memberName","eventManager","voipEventManager","canPostNotifications","OS","isOngoingCallsEnabled","isSetup","setup","options","enableOngoingCalls","setShouldRejectCallWhenBusy","shouldRejectCallWhenBusy","setupiOS","ios","incomingChannel","ongoingChannel","notificationTexts","android","notificationsConfig","id","Error","setupAndroid","shouldReject","getInitialEvents","getInitialVoipEvents","setCurrentCallActive","callId","displayIncomingCall","phoneNumber","callerName","hasVideo","displayOptions","displayTitle","answerIncomingCall","startCall","updateDisplay","incoming","endCallWithReason","reason","reasons","endCall","isCallTracked","hasRegisteredCall","setMutedCall","isMuted","setOnHoldCall","isOnHold","registerBackgroundTask","taskProvider","stopTask","stopBackgroundTask","taskData","registerBackgroundTaskAvailable","startBackgroundTask","fulfillAnswerCallAction","didFail","fulfillEndCallAction","registerVoipToken","stopService","addEventListener","eventName","callback","manager","addListener","remove","removeListener","log","message","level","module"],"sourceRoot":"../../src","sources":["CallingxModule.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","NativeCallingModule","HEADLESS_TASK_NAME","registerHeadlessTask","setHeadlessTask","EventManager","androidEndCallReasonMap","defaultAndroidOptions","defaultiOSOptions","iosEndCallReasonMap","isVoipEvent","CallingxModule","_isSetup","_isOngoingCallsEnabled","android","ios","_isHeadlessTaskRegistered","titleTransformer","memberName","eventManager","voipEventManager","canPostNotifications","OS","isOngoingCallsEnabled","isSetup","setup","options","enableOngoingCalls","setShouldRejectCallWhenBusy","shouldRejectCallWhenBusy","setupiOS","incomingChannel","ongoingChannel","notificationTexts","notificationsConfig","id","Error","setupAndroid","shouldReject","getInitialEvents","getInitialVoipEvents","setCurrentCallActive","callId","displayIncomingCall","phoneNumber","callerName","hasVideo","displayOptions","displayTitle","answerIncomingCall","startCall","updateDisplay","incoming","endCallWithReason","reason","reasons","endCall","isCallTracked","hasRegisteredCall","setMutedCall","isMuted","setOnHoldCall","isOnHold","registerBackgroundTask","taskProvider","stopTask","stopBackgroundTask","taskData","registerBackgroundTaskAvailable","startBackgroundTask","fulfillAnswerCallAction","didFail","fulfillEndCallAction","registerVoipToken","stopService","addEventListener","eventName","callback","manager","addListener","remove","removeListener","log","message","level","module"],"sourceRoot":"../../src","sources":["CallingxModule.ts"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,9 @@ export const defaultiOSOptions = {
8
8
  sound: '',
9
9
  imageName: '',
10
10
  callsHistory: false,
11
- displayCallTimeout: 60000 // 1 minute
11
+ displayCallTimeout: 60000,
12
+ // 1 minute
13
+ enableOngoingCalls: false
12
14
  };
13
15
  export const defaultAndroidOptions = {
14
16
  incomingChannel: {
@@ -20,7 +22,8 @@ export const defaultAndroidOptions = {
20
22
  ongoingChannel: {
21
23
  id: 'stream_ongoing_calls_channel',
22
24
  name: 'Ongoing calls'
23
- }
25
+ },
26
+ enableOngoingCalls: false
24
27
  };
25
28
 
26
29
  // iOS: maps to CXCallEndedReason raw values.
@@ -1 +1 @@
1
- {"version":3,"names":["defaultiOSOptions","supportsVideo","maximumCallsPerCallGroup","maximumCallGroups","handleType","sound","imageName","callsHistory","displayCallTimeout","defaultAndroidOptions","incomingChannel","id","name","vibration","ongoingChannel","iosEndCallReasonMap","local","remote","rejected","busy","answeredElsewhere","missed","error","canceled","restricted","unknown","androidEndCallReasonMap"],"sourceRoot":"../../../src","sources":["utils/constants.ts"],"mappings":";;AAOA,OAAO,MAAMA,iBAA+C,GAAG;EAC7DC,aAAa,EAAE,IAAI;EACnBC,wBAAwB,EAAE,CAAC;EAC3BC,iBAAiB,EAAE,CAAC;EACpBC,UAAU,EAAE,SAAS;EACrBC,KAAK,EAAE,EAAE;EACTC,SAAS,EAAE,EAAE;EACbC,YAAY,EAAE,KAAK;EACnBC,kBAAkB,EAAE,KAAK,CAAE;AAC7B,CAAC;AAED,OAAO,MAAMC,qBAGZ,GAAG;EACFC,eAAe,EAAE;IACfC,EAAE,EAAE,+BAA+B;IACnCC,IAAI,EAAE,gBAAgB;IACtBP,KAAK,EAAE,EAAE;IACTQ,SAAS,EAAE;EACb,CAAC;EACDC,cAAc,EAAE;IACdH,EAAE,EAAE,8BAA8B;IAClCC,IAAI,EAAE;EACR;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMG,mBAAkD,GAAG;EAChEC,KAAK,EAAE,CAAC,CAAC;EAAE;EACXC,MAAM,EAAE,CAAC;EAAE;EACXC,QAAQ,EAAE,CAAC;EAAE;EACbC,IAAI,EAAE,CAAC;EAAE;EACTC,iBAAiB,EAAE,CAAC;EAAE;EACtBC,MAAM,EAAE,CAAC;EAAE;EACXC,KAAK,EAAE,CAAC;EAAE;EACVC,QAAQ,EAAE,CAAC;EAAE;EACbC,UAAU,EAAE,CAAC;EAAE;EACfC,OAAO,EAAE,CAAC,CAAE;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,uBAAsD,GAAG;EACpEV,KAAK,EAAE,CAAC;EAAE;EACVC,MAAM,EAAE,CAAC;EAAE;EACXC,QAAQ,EAAE,CAAC;EAAE;EACbC,IAAI,EAAE,CAAC;EAAE;EACTC,iBAAiB,EAAE,CAAC;EAAE;EACtBC,MAAM,EAAE,CAAC;EAAE;EACXC,KAAK,EAAE,CAAC;EAAE;EACVC,QAAQ,EAAE,CAAC;EAAE;EACbC,UAAU,EAAE,CAAC;EAAE;EACfC,OAAO,EAAE,CAAC,CAAE;AACd,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["defaultiOSOptions","supportsVideo","maximumCallsPerCallGroup","maximumCallGroups","handleType","sound","imageName","callsHistory","displayCallTimeout","enableOngoingCalls","defaultAndroidOptions","incomingChannel","id","name","vibration","ongoingChannel","iosEndCallReasonMap","local","remote","rejected","busy","answeredElsewhere","missed","error","canceled","restricted","unknown","androidEndCallReasonMap"],"sourceRoot":"../../../src","sources":["utils/constants.ts"],"mappings":";;AAOA,OAAO,MAAMA,iBAA+C,GAAG;EAC7DC,aAAa,EAAE,IAAI;EACnBC,wBAAwB,EAAE,CAAC;EAC3BC,iBAAiB,EAAE,CAAC;EACpBC,UAAU,EAAE,SAAS;EACrBC,KAAK,EAAE,EAAE;EACTC,SAAS,EAAE,EAAE;EACbC,YAAY,EAAE,KAAK;EACnBC,kBAAkB,EAAE,KAAK;EAAE;EAC3BC,kBAAkB,EAAE;AACtB,CAAC;AAED,OAAO,MAAMC,qBAGZ,GAAG;EACFC,eAAe,EAAE;IACfC,EAAE,EAAE,+BAA+B;IACnCC,IAAI,EAAE,gBAAgB;IACtBR,KAAK,EAAE,EAAE;IACTS,SAAS,EAAE;EACb,CAAC;EACDC,cAAc,EAAE;IACdH,EAAE,EAAE,8BAA8B;IAClCC,IAAI,EAAE;EACR,CAAC;EACDJ,kBAAkB,EAAE;AACtB,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMO,mBAAkD,GAAG;EAChEC,KAAK,EAAE,CAAC,CAAC;EAAE;EACXC,MAAM,EAAE,CAAC;EAAE;EACXC,QAAQ,EAAE,CAAC;EAAE;EACbC,IAAI,EAAE,CAAC;EAAE;EACTC,iBAAiB,EAAE,CAAC;EAAE;EACtBC,MAAM,EAAE,CAAC;EAAE;EACXC,KAAK,EAAE,CAAC;EAAE;EACVC,QAAQ,EAAE,CAAC;EAAE;EACbC,UAAU,EAAE,CAAC;EAAE;EACfC,OAAO,EAAE,CAAC,CAAE;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,uBAAsD,GAAG;EACpEV,KAAK,EAAE,CAAC;EAAE;EACVC,MAAM,EAAE,CAAC;EAAE;EACXC,QAAQ,EAAE,CAAC;EAAE;EACbC,IAAI,EAAE,CAAC;EAAE;EACTC,iBAAiB,EAAE,CAAC;EAAE;EACtBC,MAAM,EAAE,CAAC;EAAE;EACXC,KAAK,EAAE,CAAC;EAAE;EACVC,QAAQ,EAAE,CAAC;EAAE;EACbC,UAAU,EAAE,CAAC;EAAE;EACfC,OAAO,EAAE,CAAC,CAAE;AACd,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"CallingxModule.d.ts","sourceRoot":"","sources":["../../../src/CallingxModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CallingxModule.d.ts","sourceRoot":"","sources":["../../../src/CallingxModule.ts"],"names":[],"mappings":"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"}
@@ -145,6 +145,11 @@ export type InternalIOSOptions = {
145
145
  * @default 60000 (1 minute)
146
146
  */
147
147
  displayCallTimeout?: number;
148
+ /**
149
+ * Whether to enable ongoing calls.
150
+ * @default false
151
+ */
152
+ enableOngoingCalls?: boolean;
148
153
  };
149
154
  type iOSOptions = Omit<InternalIOSOptions, 'maximumCallsPerCallGroup' | 'maximumCallGroups' | 'handleType'>;
150
155
  export type InternalAndroidOptions = {
@@ -182,6 +187,11 @@ export type InternalAndroidOptions = {
182
187
  */
183
188
  rejecting?: string;
184
189
  };
190
+ /**
191
+ * Whether to enable ongoing calls.
192
+ * @default false
193
+ */
194
+ enableOngoingCalls?: boolean;
185
195
  };
186
196
  type AndroidOptions = InternalAndroidOptions & NotificationTransformers;
187
197
  export type NotificationTransformers = {
@@ -190,11 +200,6 @@ export type NotificationTransformers = {
190
200
  export type CallingExpOptions = {
191
201
  ios?: iOSOptions;
192
202
  android?: AndroidOptions;
193
- /**
194
- * Whether to enable ongoing calls.
195
- * @default false
196
- */
197
- enableOngoingCalls?: boolean;
198
203
  /**
199
204
  * Whether to reject calls when the user is busy.
200
205
  * @default false
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,kBAAkB,CAS1D,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,IAAI,CACtC,YAAY,CAAC,sBAAsB,CAAC,EACpC,mBAAmB,CAYpB,CAAC;AAKF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAW7D,CAAC;AAeF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAWjE,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,kBAAkB,CAU1D,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,IAAI,CACtC,YAAY,CAAC,sBAAsB,CAAC,EACpC,mBAAmB,CAapB,CAAC;AAKF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAW7D,CAAC;AAeF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAWjE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stream-io/react-native-callingx",
3
- "version": "0.1.1-beta.1",
3
+ "version": "0.2.0",
4
4
  "description": "CallKit and Telecom API capabilities for React Native",
5
5
  "main": "./dist/module/index.js",
6
6
  "module": "./dist/module/index.js",
@@ -61,7 +61,7 @@
61
61
  "devDependencies": {
62
62
  "@react-native-community/cli": "20.0.1",
63
63
  "@react-native/babel-preset": "^0.81.5",
64
- "@stream-io/react-native-webrtc": "137.1.2",
64
+ "@stream-io/react-native-webrtc": "137.2.0",
65
65
  "@types/react": "^19.1.0",
66
66
  "del-cli": "^6.0.0",
67
67
  "react": "19.1.0",
@@ -30,7 +30,10 @@ import { isVoipEvent } from './utils/utils';
30
30
 
31
31
  class CallingxModule implements ICallingxModule {
32
32
  private _isSetup = false;
33
- private _isOngoingCallsEnabled = false;
33
+ private _isOngoingCallsEnabled = {
34
+ android: false,
35
+ ios: false,
36
+ };
34
37
  private _isHeadlessTaskRegistered = false;
35
38
 
36
39
  private titleTransformer: (memberName: string, incoming: boolean) => string =
@@ -50,7 +53,9 @@ class CallingxModule implements ICallingxModule {
50
53
  }
51
54
 
52
55
  get isOngoingCallsEnabled(): boolean {
53
- return this._isOngoingCallsEnabled;
56
+ return Platform.OS === 'ios'
57
+ ? this._isOngoingCallsEnabled.ios
58
+ : this._isOngoingCallsEnabled.android;
54
59
  }
55
60
 
56
61
  get isSetup(): boolean {
@@ -62,7 +67,10 @@ class CallingxModule implements ICallingxModule {
62
67
  return;
63
68
  }
64
69
 
65
- this._isOngoingCallsEnabled = options.enableOngoingCalls ?? false;
70
+ this._isOngoingCallsEnabled = {
71
+ android: options.android?.enableOngoingCalls ?? false,
72
+ ios: options.ios?.enableOngoingCalls ?? false,
73
+ };
66
74
  this.setShouldRejectCallWhenBusy(options.shouldRejectCallWhenBusy ?? false);
67
75
 
68
76
  if (Platform.OS === 'ios') {
package/src/types.ts CHANGED
@@ -189,6 +189,11 @@ export type InternalIOSOptions = {
189
189
  * @default 60000 (1 minute)
190
190
  */
191
191
  displayCallTimeout?: number;
192
+ /**
193
+ * Whether to enable ongoing calls.
194
+ * @default false
195
+ */
196
+ enableOngoingCalls?: boolean;
192
197
  };
193
198
  type iOSOptions = Omit<
194
199
  InternalIOSOptions,
@@ -230,6 +235,11 @@ export type InternalAndroidOptions = {
230
235
  */
231
236
  rejecting?: string;
232
237
  };
238
+ /**
239
+ * Whether to enable ongoing calls.
240
+ * @default false
241
+ */
242
+ enableOngoingCalls?: boolean;
233
243
  };
234
244
  type AndroidOptions = InternalAndroidOptions & NotificationTransformers;
235
245
 
@@ -240,11 +250,6 @@ export type NotificationTransformers = {
240
250
  export type CallingExpOptions = {
241
251
  ios?: iOSOptions;
242
252
  android?: AndroidOptions;
243
- /**
244
- * Whether to enable ongoing calls.
245
- * @default false
246
- */
247
- enableOngoingCalls?: boolean;
248
253
  /**
249
254
  * Whether to reject calls when the user is busy.
250
255
  * @default false
@@ -14,6 +14,7 @@ export const defaultiOSOptions: Required<InternalIOSOptions> = {
14
14
  imageName: '',
15
15
  callsHistory: false,
16
16
  displayCallTimeout: 60000, // 1 minute
17
+ enableOngoingCalls: false,
17
18
  };
18
19
 
19
20
  export const defaultAndroidOptions: Omit<
@@ -30,6 +31,7 @@ export const defaultAndroidOptions: Omit<
30
31
  id: 'stream_ongoing_calls_channel',
31
32
  name: 'Ongoing calls',
32
33
  },
34
+ enableOngoingCalls: false,
33
35
  };
34
36
 
35
37
  // iOS: maps to CXCallEndedReason raw values.