@stream-io/react-native-callingx 0.3.1 → 0.5.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 +16 -0
- package/Callingx.podspec +1 -1
- package/android/src/main/java/io/getstream/rn/callingx/notifications/CallNotificationManager.kt +18 -1
- package/dist/module/spec/NativeCallingx.js.map +1 -1
- package/dist/typescript/src/spec/NativeCallingx.d.ts +9 -2
- package/dist/typescript/src/spec/NativeCallingx.d.ts.map +1 -1
- package/dist/typescript/src/types.d.ts +17 -6
- package/dist/typescript/src/types.d.ts.map +1 -1
- package/ios/AudioSessionManager.swift +49 -17
- package/ios/Callingx.mm +11 -6
- package/ios/CallingxCall.swift +3 -5
- package/ios/CallingxImpl.swift +266 -210
- package/ios/CallingxLog.swift +67 -0
- package/ios/CallingxSessionOwnership.swift +37 -0
- package/ios/Settings.swift +2 -6
- package/ios/UUIDStorage.swift +10 -30
- package/ios/VoipNotificationsManager.swift +20 -43
- package/ios/VoipPushHandler.h +29 -0
- package/ios/VoipPushHandler.m +195 -0
- package/package.json +10 -10
- package/src/spec/NativeCallingx.ts +9 -2
- package/src/types.ts +13 -6
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [0.5.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/react-native-callingx-0.4.0...@stream-io/react-native-callingx-0.5.0) (2026-06-11)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
- webrtc 145 upgrade ([#2133](https://github.com/GetStream/stream-video-js/issues/2133)) ([07825e4](https://github.com/GetStream/stream-video-js/commit/07825e402193ed07acf1d41831545326a0ad93d9)), closes [rn-webrtc#27](https://github.com/GetStream/rn-webrtc/issues/27)
|
|
10
|
+
|
|
11
|
+
## [0.4.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/react-native-callingx-0.3.1...@stream-io/react-native-callingx-0.4.0) (2026-06-04)
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
- added self managed push kit delegate management ([#2263](https://github.com/GetStream/stream-video-js/issues/2263)) ([ede4671](https://github.com/GetStream/stream-video-js/commit/ede467138a4727ccdc5cf3702b16747c516775a5))
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
- skip notification bg->fg transition case ([#2262](https://github.com/GetStream/stream-video-js/issues/2262)) ([e5cd46f](https://github.com/GetStream/stream-video-js/commit/e5cd46fa557d83f3de1c983d1aca2adfac9ad0ee))
|
|
20
|
+
|
|
5
21
|
## [0.3.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/react-native-callingx-0.3.0...@stream-io/react-native-callingx-0.3.1) (2026-05-26)
|
|
6
22
|
|
|
7
23
|
### Bug Fixes
|
package/Callingx.podspec
CHANGED
|
@@ -14,7 +14,7 @@ Pod::Spec.new do |s|
|
|
|
14
14
|
s.source = { :git => "https://github.com/GetStream/stream-video-js/tree/main/packages/react-native-callingx.git", :tag => "#{s.version}" }
|
|
15
15
|
|
|
16
16
|
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
|
17
|
-
s.public_header_files = "ios/CallingxPublic.h"
|
|
17
|
+
s.public_header_files = "ios/CallingxPublic.h", "ios/VoipPushHandler.h"
|
|
18
18
|
s.swift_version = "5.0"
|
|
19
19
|
|
|
20
20
|
s.dependency "stream-react-native-webrtc"
|
package/android/src/main/java/io/getstream/rn/callingx/notifications/CallNotificationManager.kt
CHANGED
|
@@ -20,6 +20,7 @@ import io.getstream.rn.callingx.debugLog
|
|
|
20
20
|
import io.getstream.rn.callingx.getDisconnectCauseString
|
|
21
21
|
import io.getstream.rn.callingx.model.Call
|
|
22
22
|
import io.getstream.rn.callingx.repo.CallRepository
|
|
23
|
+
import io.getstream.rn.callingx.utils.LifecycleListener
|
|
23
24
|
import io.getstream.rn.callingx.utils.SettingsStore
|
|
24
25
|
import androidx.core.graphics.toColorInt
|
|
25
26
|
|
|
@@ -303,8 +304,24 @@ class CallNotificationManager(
|
|
|
303
304
|
notificationsState[callId] = current.copy(optimisticState = OptimisticState.NONE, lastSnapshot = null)
|
|
304
305
|
}
|
|
305
306
|
|
|
307
|
+
// when skipIncomingPushInForeground is true, we use the ongoing channel
|
|
308
|
+
// for the notification to avoid notification overlapping app ui, just for UX purposes
|
|
309
|
+
private fun shouldShowAsIncoming(
|
|
310
|
+
call: Call.Registered,
|
|
311
|
+
optimisticState: OptimisticState
|
|
312
|
+
): Boolean {
|
|
313
|
+
val isIncoming =
|
|
314
|
+
call.isIncoming() && !call.isActive && optimisticState == OptimisticState.NONE
|
|
315
|
+
if (!isIncoming) return false
|
|
316
|
+
|
|
317
|
+
val skipInForeground =
|
|
318
|
+
SettingsStore.shouldSkipIncomingPushInForeground(context) &&
|
|
319
|
+
LifecycleListener.isInForeground
|
|
320
|
+
return !skipInForeground
|
|
321
|
+
}
|
|
322
|
+
|
|
306
323
|
private fun getChannelId(call: Call.Registered, optimisticState: OptimisticState): String {
|
|
307
|
-
return if (
|
|
324
|
+
return if (shouldShowAsIncoming(call, optimisticState)) {
|
|
308
325
|
notificationsConfig.incomingChannel.id
|
|
309
326
|
} else {
|
|
310
327
|
notificationsConfig.ongoingChannel.id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","NativeModules","isTurboModuleEnabled","CallingxModule","getEnforcing","Callingx"],"sourceRoot":"../../../src","sources":["spec/NativeCallingx.ts"],"mappings":";;AAAA,SACEA,mBAAmB,EACnBC,aAAa,QAER,cAAc;;AAErB;;AAEA,SAASC,oBAAoB,QAAQ,mBAAgB;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","NativeModules","isTurboModuleEnabled","CallingxModule","getEnforcing","Callingx"],"sourceRoot":"../../../src","sources":["spec/NativeCallingx.ts"],"mappings":";;AAAA,SACEA,mBAAmB,EACnBC,aAAa,QAER,cAAc;;AAErB;;AAEA,SAASC,oBAAoB,QAAQ,mBAAgB;AA2LrD,MAAMC,cAAoB,GAAGD,oBAAoB,GAC7CF,mBAAmB,CAACI,YAAY,CAAO,UAAU,CAAC,GACjDH,aAAa,CAACI,QAAiB;AAEpC,eAAeF,cAAc","ignoreList":[]}
|
|
@@ -35,11 +35,14 @@ export interface Spec extends TurboModule {
|
|
|
35
35
|
getInitialEvents(): Array<{
|
|
36
36
|
eventName: string;
|
|
37
37
|
params: {
|
|
38
|
-
callId
|
|
38
|
+
callId?: string;
|
|
39
39
|
cause?: string;
|
|
40
40
|
muted?: boolean;
|
|
41
41
|
hold?: boolean;
|
|
42
42
|
source?: string;
|
|
43
|
+
phase?: string;
|
|
44
|
+
reason?: string;
|
|
45
|
+
shouldResume?: boolean;
|
|
43
46
|
};
|
|
44
47
|
}>;
|
|
45
48
|
getInitialVoipEvents(): Array<{
|
|
@@ -97,10 +100,14 @@ export interface Spec extends TurboModule {
|
|
|
97
100
|
readonly onNewEvent: EventEmitter<{
|
|
98
101
|
eventName: string;
|
|
99
102
|
params: {
|
|
100
|
-
callId
|
|
103
|
+
callId?: string;
|
|
101
104
|
cause?: string;
|
|
102
105
|
muted?: boolean;
|
|
103
106
|
hold?: boolean;
|
|
107
|
+
source?: string;
|
|
108
|
+
phase?: string;
|
|
109
|
+
reason?: string;
|
|
110
|
+
shouldResume?: boolean;
|
|
104
111
|
};
|
|
105
112
|
}>;
|
|
106
113
|
readonly onNewVoipEvent: EventEmitter<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeCallingx.d.ts","sourceRoot":"","sources":["../../../../src/spec/NativeCallingx.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAG9E,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,QAAQ,CAAC,OAAO,EAAE;QAChB,aAAa,EAAE,OAAO,CAAC;QACvB,wBAAwB,EAAE,MAAM,CAAC;QACjC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,YAAY,EAAE,OAAO,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,4BAA4B,EAAE,OAAO,CAAC;KACvC,GAAG,IAAI,CAAC;IAET,YAAY,CAAC,OAAO,EAAE;QACpB,eAAe,EAAE;YACf,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,SAAS,EAAE,OAAO,CAAC;SACpB,CAAC;QACF,cAAc,EAAE;YACd,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;QACF,iBAAiB,CAAC,EAAE;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC;QACF,4BAA4B,EAAE,OAAO,CAAC;KACvC,GAAG,IAAI,CAAC;IAET,2BAA2B,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;IAEzD,iCAAiC,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9D,oBAAoB,IAAI,OAAO,CAAC;IAEhC,gBAAgB,IAAI,KAAK,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeCallingx.d.ts","sourceRoot":"","sources":["../../../../src/spec/NativeCallingx.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAG9E,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,QAAQ,CAAC,OAAO,EAAE;QAChB,aAAa,EAAE,OAAO,CAAC;QACvB,wBAAwB,EAAE,MAAM,CAAC;QACjC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,YAAY,EAAE,OAAO,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,4BAA4B,EAAE,OAAO,CAAC;KACvC,GAAG,IAAI,CAAC;IAET,YAAY,CAAC,OAAO,EAAE;QACpB,eAAe,EAAE;YACf,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,SAAS,EAAE,OAAO,CAAC;SACpB,CAAC;QACF,cAAc,EAAE;YACd,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;QACF,iBAAiB,CAAC,EAAE;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC;QACF,4BAA4B,EAAE,OAAO,CAAC;KACvC,GAAG,IAAI,CAAC;IAET,2BAA2B,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;IAEzD,iCAAiC,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9D,oBAAoB,IAAI,OAAO,CAAC;IAEhC,gBAAgB,IAAI,KAAK,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE;YACN,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,YAAY,CAAC,EAAE,OAAO,CAAC;SACxB,CAAC;KACH,CAAC,CAAC;IAEH,oBAAoB,IAAI,KAAK,CAAC;QAC5B,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE;YACN,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,GAAG,CAAC,EAAE;gBACJ,WAAW,EAAE,MAAM,CAAC;gBACpB,iBAAiB,EAAE,MAAM,CAAC;gBAC1B,KAAK,EAAE;oBACL,KAAK,EAAE,MAAM,CAAC;iBACf,CAAC;gBACF,QAAQ,EAAE,MAAM,CAAC;gBACjB,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;YACF,MAAM,CAAC,EAAE;gBACP,MAAM,EAAE,MAAM,CAAC;gBACf,aAAa,EAAE,MAAM,CAAC;gBACtB,IAAI,EAAE,MAAM,CAAC;gBACb,KAAK,EAAE,MAAM,CAAC;gBACd,iBAAiB,EAAE,MAAM,CAAC;gBAC1B,uBAAuB,EAAE,MAAM,CAAC;gBAChC,OAAO,EAAE,MAAM,CAAC;gBAChB,IAAI,EAAE,MAAM,CAAC;gBACb,WAAW,EAAE,MAAM,CAAC;gBACpB,QAAQ,EAAE,MAAM,CAAC;gBACjB,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;SACH,CAAC;KACH,CAAC,CAAC;IAEH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EACjB,cAAc,CAAC,EAAE;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACA,OAAO,CAAC,IAAI,CAAC,CAAC;IAGjB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD,SAAS,CACP,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EACjB,cAAc,CAAC,EAAE;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACA,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,aAAa,CACX,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACA,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvC,iBAAiB,IAAI,OAAO,CAAC;IAE7B,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9D,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE,+BAA+B,IAAI,IAAI,CAAC;IACxC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAEhE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAE7D,iBAAiB,IAAI,IAAI,CAAC;IAE1B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;QAChC,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE;YACN,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,YAAY,CAAC,EAAE,OAAO,CAAC;SACxB,CAAC;KACH,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC;QACpC,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE;YACN,KAAK,EAAE,MAAM,CAAC;YACd,GAAG,EAAE;gBACH,WAAW,EAAE,MAAM,CAAC;gBACpB,iBAAiB,EAAE,MAAM,CAAC;gBAC1B,KAAK,EAAE;oBACL,KAAK,EAAE,MAAM,CAAC;iBACf,CAAC;gBACF,QAAQ,EAAE,MAAM,CAAC;gBACjB,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;YACF,MAAM,EAAE;gBACN,MAAM,EAAE,MAAM,CAAC;gBACf,aAAa,EAAE,MAAM,CAAC;gBACtB,IAAI,EAAE,MAAM,CAAC;gBACb,KAAK,EAAE,MAAM,CAAC;gBACd,iBAAiB,EAAE,MAAM,CAAC;gBAC1B,uBAAuB,EAAE,MAAM,CAAC;gBAChC,OAAO,EAAE,MAAM,CAAC;gBAChB,IAAI,EAAE,MAAM,CAAC;gBACb,WAAW,EAAE,MAAM,CAAC;gBACpB,QAAQ,EAAE,MAAM,CAAC;gBACjB,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;SACH,CAAC;KACH,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CACxE;AAED,QAAA,MAAM,cAAc,EAAE,IAEc,CAAC;AAErC,eAAe,cAAc,CAAC"}
|
|
@@ -236,14 +236,24 @@ export type InfoDisplayOptions = {
|
|
|
236
236
|
displayTitle?: string;
|
|
237
237
|
};
|
|
238
238
|
export type EventData = {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
239
|
+
[K in EventName]: {
|
|
240
|
+
eventName: K;
|
|
241
|
+
params: EventParams[K];
|
|
242
|
+
};
|
|
243
|
+
}[EventName];
|
|
242
244
|
export type VoipEventData = {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
+
[K in VoipEventName]: {
|
|
246
|
+
eventName: K;
|
|
247
|
+
params: VoipEventParams[K];
|
|
248
|
+
};
|
|
249
|
+
}[VoipEventName];
|
|
250
|
+
export type EventName = 'answerCall' | 'endCall' | 'didDisplayIncomingCall' | 'didToggleHoldCallAction' | 'didChangeAudioRoute' | 'didAudioInterruption' | 'didReceiveStartCallAction' | 'didPerformSetMutedCallAction' | 'didActivateAudioSession' | 'didDeactivateAudioSession';
|
|
251
|
+
export type IOSAudioInterruptionEvent = {
|
|
252
|
+
source: 'callingx';
|
|
253
|
+
phase: 'began' | 'ended';
|
|
254
|
+
reason?: 'default' | 'builtInMicMuted' | 'routeDisconnected' | (string & {});
|
|
255
|
+
shouldResume?: boolean;
|
|
245
256
|
};
|
|
246
|
-
export type EventName = 'answerCall' | 'endCall' | 'didDisplayIncomingCall' | 'didToggleHoldCallAction' | 'didChangeAudioRoute' | 'didReceiveStartCallAction' | 'didPerformSetMutedCallAction' | 'didActivateAudioSession' | 'didDeactivateAudioSession';
|
|
247
257
|
export type EventParams = {
|
|
248
258
|
answerCall: {
|
|
249
259
|
callId: string;
|
|
@@ -269,6 +279,7 @@ export type EventParams = {
|
|
|
269
279
|
callId: string;
|
|
270
280
|
output: string;
|
|
271
281
|
};
|
|
282
|
+
didAudioInterruption: IOSAudioInterruptionEvent;
|
|
272
283
|
didReceiveStartCallAction: {
|
|
273
284
|
callId: string;
|
|
274
285
|
};
|
|
@@ -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":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,UAAU,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC9B;;;;;;;;OAQG;IACH,IAAI,oBAAoB,IAAI,OAAO,CAAC;IACpC,IAAI,qBAAqB,IAAI,OAAO,CAAC;IACrC,IAAI,OAAO,IAAI,OAAO,CAAC;IAEvB;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC;;;;OAIG;IACH,2BAA2B,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;IAEzD;;;OAGG;IACH,iCAAiC,CAC/B,YAAY,EAAE,yBAAyB,GACtC,IAAI,CAAC;IACR;;;;;OAKG;IACH,gBAAgB,IAAI,SAAS,EAAE,CAAC;IAEhC;;;;;OAKG;IACH,oBAAoB,IAAI,aAAa,EAAE,CAAC;IAExC,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD,SAAS,CACP,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD,aAAa,CACX,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvC;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAAC;IAE7B;;;;;;;OAOG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9D,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;;;OAKG;IACH,sBAAsB,CAAC,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC;IAE1D;;;;;;OAMG;IACH,mBAAmB,CAAC,YAAY,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;;;OAKG;IACH,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAEhE;;;;;OAKG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAE7D,iBAAiB,IAAI,IAAI,CAAC;IAE1B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B;;;;;;;OAOG;IACH,gBAAgB,CAAC,CAAC,SAAS,SAAS,GAAG,aAAa,EAClD,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,aAAa,CACrB,CAAC,SAAS,SAAS,GACf,WAAW,CAAC,CAAC,CAAC,GACd,CAAC,SAAS,aAAa,GACrB,eAAe,CAAC,CAAC,CAAC,GAClB,KAAK,CACZ,GACA;QAAE,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAE1B,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CACxE;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;IACtD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;OAOG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;OAGG;IACH,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;CACvD,CAAC;AACF,KAAK,UAAU,GAAG,IAAI,CACpB,kBAAkB,EAClB,0BAA0B,GAAG,mBAAmB,GAAG,YAAY,CAChE,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;OAGG;IACH,eAAe,CAAC,EAAE;QAChB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF;;;OAGG;IACH,cAAc,CAAC,EAAE;QACf,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF;;;OAGG;IACH,iBAAiB,CAAC,EAAE;QAClB;;;WAGG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;;;WAGG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC,CAAC;AACF,KAAK,cAAc,GAAG,sBAAsB,GAAG,wBAAwB,CAAC;AAExE,MAAM,MAAM,wBAAwB,GAAG;IACrC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,MAAM,CAAC;CACtE,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;KACrB,CAAC,IAAI,SAAS,GAAG;QAAE,SAAS,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;KAAE;CAC3D,CAAC,SAAS,CAAC,CAAC;AAEb,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,aAAa,GAAG;QAAE,SAAS,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAA;KAAE;CACnE,CAAC,aAAa,CAAC,CAAC;AAEjB,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,SAAS,GACT,wBAAwB,GACxB,yBAAyB,GACzB,qBAAqB,GACrB,sBAAsB,GACtB,2BAA2B,GAC3B,8BAA8B,GAC9B,yBAAyB,GACzB,2BAA2B,CAAC;AAEhC,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,SAAS,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE;QACV,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;KACvB,CAAC;IACF,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;KACvB,CAAC;IACF,sBAAsB,EAAE;QACtB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,uBAAuB,EAAE;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,4BAA4B,EAAE;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,mBAAmB,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,oBAAoB,EAAE,yBAAyB,CAAC;IAChD,yBAAyB,EAAE;QACzB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,uBAAuB,EAAE,SAAS,CAAC;IACnC,yBAAyB,EAAE,SAAS,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,6BAA6B,GAC7B,0BAA0B,CAAC;AAE/B,MAAM,MAAM,eAAe,GAAG;IAC5B,2BAA2B,EAAE;QAC3B,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,wBAAwB,EAAE;QACxB,GAAG,EAAE;YACH,WAAW,EAAE,MAAM,CAAC;YACpB,iBAAiB,EAAE,MAAM,CAAC;YAC1B,KAAK,EAAE;gBACL,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;YACF,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAC;YACf,aAAa,EAAE,MAAM,CAAC;YACtB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,iBAAiB,EAAE,MAAM,CAAC;YAC1B,uBAAuB,EAAE,MAAM,CAAC;YAChC,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;CACH,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa;AACvB,uDAAuD;AACrD,OAAO;AACT,yEAAyE;GACvE,QAAQ;AACV,8CAA8C;GAC5C,UAAU;AACZ,6BAA6B;GAC3B,MAAM;AACR,2CAA2C;GACzC,mBAAmB;AACrB,uCAAuC;GACrC,QAAQ;AACV,yDAAyD;GACvD,OAAO;AACT,8DAA8D;GAC5D,UAAU;AACZ,mEAAmE;GACjE,YAAY;AACd,gDAAgD;GAC9C,SAAS,CAAC"}
|
|
@@ -9,25 +9,62 @@ enum DefaultAudioDevice {
|
|
|
9
9
|
|
|
10
10
|
@objcMembers public class AudioSessionManager: NSObject {
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
private static var defaultAudioDevice: DefaultAudioDevice = .speaker
|
|
14
|
-
private static var configuredInCurrentActivationCycle: Bool = false
|
|
12
|
+
public static let shared = AudioSessionManager()
|
|
15
13
|
|
|
16
|
-
|
|
14
|
+
/// Guards the `defaultAudioDevice` cache. Strictly an in-memory state queue —
|
|
15
|
+
/// session writes never run here (they'd risk a deadlock since
|
|
16
|
+
/// `applyCallKitConfiguration` does `stateQueue.sync` to read the cache).
|
|
17
|
+
private let stateQueue = DispatchQueue(label: "io.getstream.callingx.audioSessionManager")
|
|
18
|
+
private var defaultAudioDevice: DefaultAudioDevice = .speaker
|
|
19
|
+
|
|
20
|
+
/// Serializes engine-driven session writes against each other (multiple
|
|
21
|
+
/// `.willEnableAudioEngine` events in arrival order). Cross-path
|
|
22
|
+
/// serialization vs `stateQueue` / WebRTC's own paths is via
|
|
23
|
+
/// `RTCAudioSession.lockForConfiguration`, not via this queue.
|
|
24
|
+
private let audioSessionQueue = DispatchQueue(label: "io.getstream.callingx.audioSession")
|
|
25
|
+
|
|
26
|
+
public func setDefaultAudioDeviceEndpointType(_ endpointType: String) {
|
|
17
27
|
let next: DefaultAudioDevice = endpointType.lowercased() == "earpiece" ? .earpiece : .speaker
|
|
18
|
-
stateQueue.async { defaultAudioDevice = next }
|
|
28
|
+
stateQueue.async { self.defaultAudioDevice = next }
|
|
19
29
|
}
|
|
20
30
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
31
|
+
/// Belt-and-braces config writer kept for the initial-activation window
|
|
32
|
+
/// (called from `CXStartCallAction.perform` / `CXAnswerCallAction.perform`).
|
|
33
|
+
/// Stays synchronous from the caller's perspective — `audioSessionQueue.sync`
|
|
34
|
+
/// blocks until configuration completes so `action.fulfill()` runs on a configured
|
|
35
|
+
/// session and `provider(_:didActivate:)` may fire imminently. Serializes with
|
|
36
|
+
/// `engineWillEnable` (e.g. work queued by `adm.reset()` runs first on the queue).
|
|
37
|
+
/// The engine-observer path is the authoritative reapply on subsequent activations.
|
|
38
|
+
public func createAudioSessionIfNeeded() {
|
|
39
|
+
audioSessionQueue.sync {
|
|
40
|
+
self.applyCallKitConfiguration()
|
|
41
|
+
}
|
|
24
42
|
}
|
|
25
43
|
|
|
26
|
-
|
|
27
|
-
|
|
44
|
+
/// Called from the AudioDeviceModule publisher's `.willEnableAudioEngine` event.
|
|
45
|
+
/// Reapplies the callingx audio-session configuration on every engine rebuild
|
|
46
|
+
/// (initial activation, interruption recovery, mode change). CallKit owns
|
|
47
|
+
/// activation, so we never call `setActive`.
|
|
48
|
+
///
|
|
49
|
+
/// Hops onto `audioSessionQueue` because the sink is Combine-driven with no
|
|
50
|
+
/// synchronous caller waiting; this serializes back-to-back engine events
|
|
51
|
+
/// against each other.
|
|
52
|
+
public func engineWillEnable() {
|
|
53
|
+
audioSessionQueue.async { [weak self] in
|
|
54
|
+
CallingxLog.audio.debugPublic("[engineWillEnable]")
|
|
55
|
+
self?.applyCallKitConfiguration()
|
|
56
|
+
}
|
|
28
57
|
}
|
|
29
58
|
|
|
30
|
-
|
|
59
|
+
/// Called from the AudioDeviceModule publisher's `.didDisableAudioEngine` event.
|
|
60
|
+
/// CallKit owns deactivation — no-op on the CallKit path.
|
|
61
|
+
public func engineDidDisable() {
|
|
62
|
+
// No-op: CallKit's `provider(_:didDeactivate:)` handles `setActive(false)`.
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// MARK: - Private
|
|
66
|
+
|
|
67
|
+
private func applyCallKitConfiguration() {
|
|
31
68
|
let currentDevice = stateQueue.sync { defaultAudioDevice }
|
|
32
69
|
|
|
33
70
|
// XCode 16 and older don't expose .allowBluetoothHFP
|
|
@@ -56,13 +93,8 @@ enum DefaultAudioDevice {
|
|
|
56
93
|
|
|
57
94
|
do {
|
|
58
95
|
try rtcSession.setConfiguration(rtcConfig)
|
|
59
|
-
// Set inside do{} so a failure leaves the flag false and the next
|
|
60
|
-
// didActivate reapply auto-recovers.
|
|
61
|
-
stateQueue.async { configuredInCurrentActivationCycle = true }
|
|
62
96
|
} catch {
|
|
63
|
-
|
|
64
|
-
NSLog("%@","[Callingx][createAudioSessionIfNeeded] Error: \(error)")
|
|
65
|
-
#endif
|
|
97
|
+
CallingxLog.audio.errorPublic("[createAudioSessionIfNeeded] Error: \(error)")
|
|
66
98
|
}
|
|
67
99
|
}
|
|
68
100
|
}
|
package/ios/Callingx.mm
CHANGED
|
@@ -38,6 +38,8 @@
|
|
|
38
38
|
CallingxImpl *_moduleImpl;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
@synthesize moduleRegistry = _moduleRegistry;
|
|
42
|
+
|
|
41
43
|
#pragma mark - Singleton
|
|
42
44
|
|
|
43
45
|
+ (id)allocWithZone:(NSZone *)zone {
|
|
@@ -161,12 +163,15 @@ RCT_EXPORT_MODULE(Callingx)
|
|
|
161
163
|
- (void)_setupiOSWithOptions:(NSDictionary *)optionsDict {
|
|
162
164
|
[_moduleImpl setupWithOptions:optionsDict];
|
|
163
165
|
|
|
164
|
-
//
|
|
165
|
-
//
|
|
166
|
-
//
|
|
167
|
-
WebRTCModule *webrtcModule = [
|
|
166
|
+
// Resolve WebRTCModule via the injected RCTModuleRegistry so CallingxImpl can
|
|
167
|
+
// access its AudioDeviceModule. Works on both old and new arch, including
|
|
168
|
+
// bridgeless (where [RCTBridge currentBridge] is a stub that returns nil).
|
|
169
|
+
WebRTCModule *webrtcModule = [self.moduleRegistry moduleForName:"WebRTCModule"];
|
|
168
170
|
_moduleImpl.webRTCModule = webrtcModule;
|
|
169
171
|
|
|
172
|
+
// Must run after webRTCModule injection: getAudioDeviceModule() depends on it.
|
|
173
|
+
[_moduleImpl wireEngineSubscription];
|
|
174
|
+
|
|
170
175
|
self.callKeepCallController = _moduleImpl.callKeepCallController;
|
|
171
176
|
self.callKeepProvider = _moduleImpl.callKeepProvider;
|
|
172
177
|
}
|
|
@@ -557,11 +562,11 @@ RCT_EXPORT_METHOD(fulfillEndCallAction:(NSString *)callId didFail:(BOOL)didFail)
|
|
|
557
562
|
|
|
558
563
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
559
564
|
- (void)log:(NSString *)message level:(NSString *)level {
|
|
560
|
-
|
|
565
|
+
[CallingxLogBridge js:message level:level];
|
|
561
566
|
}
|
|
562
567
|
#else
|
|
563
568
|
RCT_EXPORT_METHOD(log:(NSString *)message level:(NSString *)level) {
|
|
564
|
-
|
|
569
|
+
[CallingxLogBridge js:message level:level];
|
|
565
570
|
}
|
|
566
571
|
#endif
|
|
567
572
|
|
package/ios/CallingxCall.swift
CHANGED
|
@@ -17,8 +17,9 @@ import Foundation
|
|
|
17
17
|
public private(set) var isSelfAnswered: Bool = false
|
|
18
18
|
/// Whether endCall was initiated from the app (vs system UI)
|
|
19
19
|
public private(set) var isSelfEnded: Bool = false
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
// Mute action-source attribution is tracked per-action by UUID in `CallingxImpl`
|
|
21
|
+
// (`appInitiatedMuteActionIds`), not via a per-call flag, to avoid a race between
|
|
22
|
+
// concurrent app-initiated mute toggles.
|
|
22
23
|
|
|
23
24
|
// MARK: - Lifecycle timestamps
|
|
24
25
|
|
|
@@ -54,17 +55,14 @@ import Foundation
|
|
|
54
55
|
|
|
55
56
|
public func markSelfAnswered() { isSelfAnswered = true }
|
|
56
57
|
public func markSelfEnded() { isSelfEnded = true }
|
|
57
|
-
public func markSelfMuted() { isSelfMuted = true }
|
|
58
58
|
|
|
59
59
|
public func resetSelfAnswered() { isSelfAnswered = false }
|
|
60
60
|
public func resetSelfEnded() { isSelfEnded = false }
|
|
61
|
-
public func resetSelfMuted() { isSelfMuted = false }
|
|
62
61
|
|
|
63
62
|
/// Resets all action-source flags. Called when a CXTransaction fails.
|
|
64
63
|
public func resetAllSelfFlags() {
|
|
65
64
|
isSelfAnswered = false
|
|
66
65
|
isSelfEnded = false
|
|
67
|
-
isSelfMuted = false
|
|
68
66
|
}
|
|
69
67
|
|
|
70
68
|
// MARK: - Lifecycle transition methods
|