Skip to content
Open
Show file tree
Hide file tree
Changes from 124 commits
Commits
Show all changes
159 commits
Select commit Hold shift + click to select a range
cf3cc37
feat: callkit/telecom integration
greenfrvr Dec 2, 2025
06a19b2
feat: improved Android intent handling, fixed permissions check for v…
greenfrvr Dec 3, 2025
5542009
feat: adjusted notification channels creation and notification postin…
greenfrvr Dec 4, 2025
d6e4585
feat: added android ringtone support
greenfrvr Dec 5, 2025
799e1ec
feat: added android <26 handling
greenfrvr Dec 5, 2025
3c34548
feat: added registered call check on turbomodule side
greenfrvr Dec 5, 2025
6a12d55
chore: removed unused param
greenfrvr Dec 9, 2025
a920507
feat: added android notification timer
greenfrvr Dec 9, 2025
d8e53bc
feat: added outcoming call support
greenfrvr Dec 9, 2025
da0901e
chore: code cleanup
greenfrvr Dec 9, 2025
7ad9360
feat: added ringtone support to ios
greenfrvr Dec 9, 2025
d374c9b
feat: added calls history for ios
greenfrvr Dec 9, 2025
95b45d1
feat: added image support for ios
greenfrvr Dec 9, 2025
151f36a
feat: made outcoming calls support optional
greenfrvr Dec 10, 2025
ad13d90
chore: code cleanup
greenfrvr Dec 10, 2025
7906d79
feat: added optional default audio session creation
greenfrvr Dec 10, 2025
53f2036
feat: made Android permissions adjustable
greenfrvr Dec 10, 2025
fa6729b
feat: adjusted android endCall behavior
greenfrvr Dec 11, 2025
0a2ca4e
chore: adjusted android setup params
greenfrvr Dec 11, 2025
2952fc1
feat: updated expo plugins
greenfrvr Dec 11, 2025
2f2709b
feat: adjusted answer call events behavior
greenfrvr Dec 11, 2025
b0ffbab
feat: answer/end callbacks tweaks
greenfrvr Dec 11, 2025
6b05cc1
feat: added registered call check
greenfrvr Dec 12, 2025
2d5fbc2
chore: prevent service crash in case of multiple simultaneous calls
greenfrvr Dec 12, 2025
86310e0
Merge commit '1a695dcb43c4c0d94230f8ebce9b8eb3424c1b7d' into feat/cal…
greenfrvr Dec 12, 2025
c3cb755
removed yarnrc
santhoshvai Dec 12, 2025
21c34ff
fix: removed local yarnrc
greenfrvr Dec 12, 2025
457bd3b
Merge branch 'feat/callkit-telecom-integration' of https://github.com…
greenfrvr Dec 12, 2025
f21c242
add to rn deps
santhoshvai Dec 12, 2025
29f33eb
fix: fixed service unbinding
greenfrvr Dec 12, 2025
1ab4ca4
fix: added lock for call register
greenfrvr Dec 15, 2025
683f1a5
chore: adjusted start call timing
greenfrvr Dec 15, 2025
30cd141
feat: added delayed events handling
greenfrvr Dec 16, 2025
91ec82a
fix: reverted states condition
greenfrvr Dec 16, 2025
eb2446f
Merge branch 'main' into feat/callkit-telecom-integration
greenfrvr Dec 16, 2025
31637bc
chore: adjusted state changes conditions
greenfrvr Dec 17, 2025
448f927
fix: fixed foreground flag wrong setup
greenfrvr Dec 17, 2025
0d1514f
chore: adjusted states conditions for different cases
greenfrvr Dec 18, 2025
6eae7b4
feat: adjusted calls interruption implementation
greenfrvr Dec 18, 2025
92afefa
fix: adjusted accept call condition
greenfrvr Dec 18, 2025
fc50dac
Merge branch 'main' into feat/callkit-telecom-integration
greenfrvr Dec 22, 2025
86875ce
chore: made js setup timeout adjustable
greenfrvr Dec 22, 2025
13e4637
chore: removed outdated types, small type tweaks
greenfrvr Dec 22, 2025
a410029
chore: removed redundant dependencies
greenfrvr Dec 23, 2025
247c739
chore: removed example app
greenfrvr Dec 23, 2025
700653a
chore: refactor android package name
greenfrvr Dec 23, 2025
a07d253
chore: dogfood delegate cleanup
greenfrvr Dec 23, 2025
678c580
chore: renamed package, added nx setup
greenfrvr Dec 23, 2025
f76174e
chore: clean up
greenfrvr Dec 23, 2025
2fd21cd
chore: adjusted rn version
greenfrvr Dec 24, 2025
480d07a
chore: added module docs
greenfrvr Dec 24, 2025
5408c15
chore: types tweaks
greenfrvr Dec 25, 2025
d152abf
feat: added rejectCallWhenBusy property
greenfrvr Dec 25, 2025
ba6c119
chore: updated yarn.lock
greenfrvr Dec 25, 2025
381592d
feat: adjusted rejectCallWhenBusy storage
greenfrvr Dec 26, 2025
7059398
Merge branch 'main' into feat/callkit-telecom-integration
greenfrvr Dec 26, 2025
4c85828
chore: migrated ios module to swift
greenfrvr Dec 30, 2025
63f9245
chore: small tweaks for expo sample app
greenfrvr Jan 5, 2026
e5fa786
chore: adjusted default ios params
greenfrvr Jan 5, 2026
37943c1
chore: small tweaks
greenfrvr Jan 5, 2026
37f7a55
chore: refactored setup call
greenfrvr Jan 6, 2026
35835f4
feat: improved ongoing call support
greenfrvr Jan 7, 2026
e5c5cb8
chore: pass completion callback for smoother future integration
greenfrvr Jan 8, 2026
67188f4
chore: refactored repo classes
greenfrvr Jan 8, 2026
8153dea
chore: renamed command names
greenfrvr Jan 8, 2026
4fe1a16
chore: removed auto permissions and ongoing calls configurable params
greenfrvr Jan 8, 2026
18a8364
fix: fixed pr comments
greenfrvr Jan 9, 2026
3f76594
Merge remote-tracking branch 'origin/feat/callkit-telecom-integration…
greenfrvr Jan 9, 2026
19ec183
chore: updated startForeground invocation timing
greenfrvr Jan 9, 2026
7b9d8bd
chore: refactored background task promise instantiation
greenfrvr Jan 9, 2026
12dcb64
chore: pr comments fixes
greenfrvr Jan 12, 2026
e8a0a6a
chore: adjusted headless task behavior
greenfrvr Jan 13, 2026
ff4ffc2
feat: removed voip push notifications dependency
greenfrvr Jan 15, 2026
1a8ea95
feat: updated expo plugins
greenfrvr Jan 15, 2026
551ff91
chore: adjusted start foreground invocation
greenfrvr Jan 19, 2026
af9580f
Merge branch 'main' into feat/callkit-telecom-integration
greenfrvr Jan 19, 2026
6fe17e4
feat: implement our own keep call alive foreground service instead of…
santhoshvai Jan 19, 2026
fc7c689
chore: revert Krisp SDK formatting changes to match upstream
greenfrvr Jan 19, 2026
97d7724
chore: adjusted logs
greenfrvr Jan 19, 2026
9814da9
chore: default audio session params + reject when busy adjustment
greenfrvr Jan 19, 2026
9063c25
fix: stick with 23.7.x firebase pacakge
greenfrvr Jan 20, 2026
e942387
chore: plugins tweaks
greenfrvr Jan 20, 2026
091291d
chore: updated tests
greenfrvr Jan 20, 2026
2a9d198
fix: lint fixes
greenfrvr Jan 20, 2026
4406e1c
chore: removed redundant files
greenfrvr Jan 20, 2026
e3d4443
fix: coderabbit fixes
greenfrvr Jan 20, 2026
cdfd332
Merge branch 'main' into feat/callkit-telecom-integration
greenfrvr Jan 20, 2026
c14e1c7
fix: coderabbit fixes
greenfrvr Jan 21, 2026
dbc4e45
fix: coderabbit fixes
greenfrvr Jan 21, 2026
4a0887f
chore: call alive condition update
greenfrvr Jan 21, 2026
62dd4b7
chore: code cleanup
greenfrvr Jan 21, 2026
f6c4d41
feat: added webrtc audio session sync with callkit
greenfrvr Jan 21, 2026
5ac2844
chore: temp workflow change
greenfrvr Jan 21, 2026
0187f1b
fix: shared provider recreation issue
greenfrvr Jan 21, 2026
a20d45c
chore: notification channel renaming
greenfrvr Jan 21, 2026
ff73e8f
Merge branch 'main' into feat/callkit-telecom-integration
greenfrvr Jan 21, 2026
d08b9a8
chore: reverted workflow config
greenfrvr Jan 21, 2026
3f2a167
chore: removed session activation during callkit setup
greenfrvr Jan 22, 2026
ee7478a
chore: update gem lock
santhoshvai Jan 22, 2026
b16b1b6
Update packages/react-native-callingx/Callingx.podspec
greenfrvr Jan 22, 2026
293dcf3
Update packages/react-native-callingx/LICENSE
greenfrvr Jan 22, 2026
c06573e
chore: removed configure audio session flag
greenfrvr Jan 22, 2026
44f46f9
Merge remote-tracking branch 'origin/feat/callkit-telecom-integration…
greenfrvr Jan 22, 2026
05d8305
chore: remove kristian from list
santhoshvai Jan 22, 2026
b2e9360
chore: merged notification channels for call alive and telecom
greenfrvr Jan 22, 2026
bc1a450
Merge remote-tracking branch 'origin/feat/callkit-telecom-integration…
greenfrvr Jan 22, 2026
2fc7899
Update packages/react-native-callingx/ios/CallingxImpl.swift
greenfrvr Jan 22, 2026
6dcdc06
chore: reverted channel type naming
greenfrvr Jan 22, 2026
36e4d73
Merge remote-tracking branch 'origin/feat/callkit-telecom-integration…
greenfrvr Jan 22, 2026
1d8b6b7
fix: dont use callkeep effects for non ringing type calls
santhoshvai Jan 23, 2026
1e3706a
Revert "fix: dont use callkeep effects for non ringing type calls"
santhoshvai Jan 23, 2026
d13ca93
chore: made ongoing calls register optional
greenfrvr Jan 26, 2026
5ae7df7
chore: temporary disabling muting sync
greenfrvr Jan 27, 2026
6eed24f
chore: removed redundant subscriptions for calls not matching conditions
greenfrvr Jan 28, 2026
b1e88b6
chore: added ios logs
greenfrvr Jan 28, 2026
4132308
fix: sync callkit audio config with webrtc config (#2095)
santhoshvai Jan 28, 2026
3b2efa9
ci: temporary enabled ios deploy
greenfrvr Jan 28, 2026
8adfe6f
Merge branch 'main' into feat/callkit-telecom-integration
greenfrvr Jan 28, 2026
2dc9b07
chore: callingx package tweaks
greenfrvr Jan 28, 2026
e1754bc
chore: bumped dogfood version
greenfrvr Jan 28, 2026
ebb9599
chore: updated condition for keep alive activation
greenfrvr Jan 29, 2026
b89aaf0
chore: reverted ci config
greenfrvr Jan 29, 2026
f892ee2
fix: eagerly start callingx on call.join (#2105)
santhoshvai Feb 4, 2026
7118a7b
Merge branch 'main' into feat/callkit-telecom-integration
santhoshvai Feb 4, 2026
aa92eea
chore: rabbit comments
greenfrvr Feb 4, 2026
3095e02
wip: incoming call from callkit wait audio
santhoshvai Feb 5, 2026
955a53c
wip: await for reportIncomingCall
santhoshvai Feb 5, 2026
588284c
fix: set voiceChat and directly using rtcConfig for audio
santhoshvai Feb 5, 2026
d139a6c
wip: added didDisplayIncomingCall resolution
greenfrvr Feb 5, 2026
d48d08e
Merge remote-tracking branch 'origin/feat/callkit-telecom-integration…
greenfrvr Feb 5, 2026
c4b8961
chore: adjusted callingx module check conditions
greenfrvr Feb 5, 2026
b3db9db
chore: code cleanup
greenfrvr Feb 5, 2026
058cd57
chore: bumped webrtc version
greenfrvr Feb 5, 2026
377b422
chore: temp workflow update
greenfrvr Feb 5, 2026
a771a72
chore: updated lock files
greenfrvr Feb 5, 2026
cfdd511
chore: reverted workflow
greenfrvr Feb 6, 2026
49df297
chore: removed POST_NOTIFICATION permission request
greenfrvr Feb 6, 2026
c1c0e31
chore: code cleanup
greenfrvr Feb 6, 2026
f587caf
feat: get callkit mute working
santhoshvai Feb 6, 2026
66f7106
chore: remove unused import
santhoshvai Feb 9, 2026
ad2a7cf
Merge remote-tracking branch 'origin/feat/callkit-telecom-integration…
greenfrvr Feb 9, 2026
7158ea6
feat: add proper endCall reasoning (#2114)
santhoshvai Feb 9, 2026
5c0dc66
Merge remote-tracking branch 'origin/feat/callkit-telecom-integration…
greenfrvr Feb 9, 2026
307a104
fix: adjusted mute event subscription condition
greenfrvr Feb 9, 2026
5106156
chore: moved end call logic to Call.leave
greenfrvr Feb 9, 2026
55fb57f
fix: fixed cold start didActivateAudioSession race condition
greenfrvr Feb 9, 2026
25b2a34
chore: added isAudioSessionAlreadyActivated flag reset
greenfrvr Feb 10, 2026
b76edc6
Merge branch 'main' into feat/callkit-telecom-integration
greenfrvr Feb 10, 2026
84847d1
fix: use old arch supported flags
greenfrvr Feb 10, 2026
8acf453
Merge branch 'main' into feat/callkit-telecom-integration
greenfrvr Feb 11, 2026
ceef9fe
chore: adjusted displayIncomingCall event handling
greenfrvr Feb 12, 2026
c95b5dd
chore: added error handlers for startForeground invocation
greenfrvr Feb 12, 2026
943d683
fix: callkit adm reset (#2126)
greenfrvr Feb 13, 2026
923f668
fix: await native call registration before resolving displayIncomingC…
santhoshvai Feb 13, 2026
75054f8
fix: support synchronous check of call in telecom like callkit (#2125)
santhoshvai Feb 13, 2026
f7a10e9
chore: updated webrtc version
greenfrvr Feb 13, 2026
0c6525b
chore: added error handling for start fgs
greenfrvr Feb 13, 2026
ae4f785
fix: track call ids for android outside of service (#2129)
santhoshvai Feb 17, 2026
13e9771
feat: callingx legacy arch support (#2128)
greenfrvr Feb 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/actions/rn-bootstrap/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ runs:

- uses: ruby/setup-ruby@v1
with:
ruby-version: 3.1
ruby-version: 3.4
working-directory: sample-apps/react-native/dogfood
bundler-cache: true

Expand Down
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"start:react-native:ios:dogfood": "yarn workspace @stream-io/video-react-native-dogfood run ios",
"start:react-native:android:dogfood": "yarn workspace @stream-io/video-react-native-dogfood run android",
"build:styling": "yarn workspace @stream-io/video-styling run build",
"build:react-native-callingx": "yarn workspace @stream-io/react-native-callingx run build",
"start:styling": "yarn workspace @stream-io/video-styling run start",
"build:client": "yarn workspace @stream-io/video-client run build",
"start:client": "yarn workspace @stream-io/video-client run start",
Expand All @@ -31,7 +32,7 @@
"build:video-filters-react-native": "yarn workspace @stream-io/video-filters-react-native run build",
"build:noise-cancellation-react-native": "yarn workspace @stream-io/noise-cancellation-react-native run build",
"build:react:deps": "yarn workspaces foreach -Apv --topological-dev --include 'packages/{client,react-{sdk,bindings},styling,{video,audio}-filters-web}' run build",
"build:react-native:deps": "yarn workspaces foreach -Apv --topological-dev --include 'packages/{client,react-bindings,audio-filters-web,{video-filters,noise-cancellation}-react-native,react-native-sdk}' run build",
"build:react-native:deps": "yarn workspaces foreach -Apv --topological-dev --include 'packages/{client,react-bindings,audio-filters-web,{video-filters,noise-cancellation}-react-native,react-native-sdk,react-native-callingx}' run build",
"build:vercel": "yarn build:react:deps && yarn build:react:dogfood",
"start:egress": "yarn workspace @stream-io/egress-composite start",
"build:egress": "yarn workspace @stream-io/egress-composite build",
Expand Down Expand Up @@ -62,6 +63,7 @@
"release:video-filters-web": "yarn workspace @stream-io/video-filters-web npm publish --access=public --tag=latest",
"release:video-filters-react-native": "yarn workspace @stream-io/video-filters-react-native npm publish --access=public --tag=latest",
"release:noise-cancellation-react-native": "yarn workspace @stream-io/noise-cancellation-react-native npm publish --access=public --tag=latest",
"release:react-native-callingx": "yarn workspace @stream-io/react-native-callingx npm publish --access=public --tag=latest",
"release:styling": "yarn workspace @stream-io/video-styling npm publish --access=public --tag=latest",
"postinstall": "husky"
},
Expand Down
112 changes: 65 additions & 47 deletions packages/client/src/Call.ts
Original file line number Diff line number Diff line change
Expand Up @@ -671,7 +671,9 @@ export class Call {
this.cancelAutoDrop();
this.clientStore.unregisterCall(this);

globalThis.streamRNVideoSDK?.callManager.stop();
globalThis.streamRNVideoSDK?.callManager.stop({
isRingingTypeCall: this.ringing,
});

this.camera.dispose();
this.microphone.dispose();
Expand Down Expand Up @@ -755,20 +757,20 @@ export class Call {
members_limit?: number;
video?: boolean;
}): Promise<GetCallResponse> => {
if (params?.ring) {
this.ringingSubject.next(true);
}

await this.setup();

const response = await this.streamClient.get<GetCallResponse>(
this.streamClientBasePath,
params,
);

this.state.updateFromCallResponse(response.call);
this.state.setMembers(response.members);
this.state.setOwnCapabilities(response.own_capabilities);

if (params?.ring) {
this.ringingSubject.next(true);
}

if (this.streamClient._hasConnectionID()) {
this.watching = true;
this.clientStore.registerOrUpdateCall(this);
Expand All @@ -785,7 +787,12 @@ export class Call {
* @param data the data to create the call with.
*/
getOrCreate = async (data?: GetOrCreateCallRequest) => {
if (data?.ring) {
this.ringingSubject.next(true);
}

await this.setup();

const response = await this.streamClient.post<
GetOrCreateCallResponse,
GetOrCreateCallRequest
Expand All @@ -795,10 +802,6 @@ export class Call {
this.state.setMembers(response.members);
this.state.setOwnCapabilities(response.own_capabilities);

if (data?.ring) {
this.ringingSubject.next(true);
}

if (this.streamClient._hasConnectionID()) {
this.watching = true;
this.clientStore.registerOrUpdateCall(this);
Expand Down Expand Up @@ -897,53 +900,66 @@ export class Call {
joinResponseTimeout?: number;
rpcRequestTimeout?: number;
} = {}): Promise<void> => {
await this.setup();
const callingState = this.state.callingState;

if ([CallingState.JOINED, CallingState.JOINING].includes(callingState)) {
throw new Error(`Illegal State: call.join() shall be called only once`);
}
if (data.ring) {
this.ringingSubject.next(true);
}
const callingX = globalThis.streamRNVideoSDK?.callingX;
if (callingX) {
// for Android/iOS, we need to start the call in the callingx library as soon as possible
await callingX.startCall(this);
}
await this.setup();

this.joinResponseTimeout = joinResponseTimeout;
this.rpcRequestTimeout = rpcRequestTimeout;
try {
this.joinResponseTimeout = joinResponseTimeout;
this.rpcRequestTimeout = rpcRequestTimeout;

// we will count the number of join failures per SFU.
// once the number of failures reaches 2, we will piggyback on the `migrating_from`
// field to force the coordinator to provide us another SFU
const sfuJoinFailures = new Map<string, number>();
const joinData: JoinCallData = data;
maxJoinRetries = Math.max(maxJoinRetries, 1);
for (let attempt = 0; attempt < maxJoinRetries; attempt++) {
try {
this.logger.trace(`Joining call (${attempt})`, this.cid);
await this.doJoin(data);
delete joinData.migrating_from;
break;
} catch (err) {
this.logger.warn(`Failed to join call (${attempt})`, this.cid);
if (
(err instanceof ErrorFromResponse && err.unrecoverable) ||
(err instanceof SfuJoinError && err.unrecoverable)
) {
// if the error is unrecoverable, we should not retry as that signals
// that connectivity is good, but the coordinator doesn't allow the user
// to join the call due to some reason (e.g., ended call, expired token...)
throw err;
}

// we will count the number of join failures per SFU.
// once the number of failures reaches 2, we will piggyback on the `migrating_from`
// field to force the coordinator to provide us another SFU
const sfuJoinFailures = new Map<string, number>();
const joinData: JoinCallData = data;
maxJoinRetries = Math.max(maxJoinRetries, 1);
for (let attempt = 0; attempt < maxJoinRetries; attempt++) {
try {
this.logger.trace(`Joining call (${attempt})`, this.cid);
await this.doJoin(data);
delete joinData.migrating_from;
break;
} catch (err) {
this.logger.warn(`Failed to join call (${attempt})`, this.cid);
if (
(err instanceof ErrorFromResponse && err.unrecoverable) ||
(err instanceof SfuJoinError && err.unrecoverable)
) {
// if the error is unrecoverable, we should not retry as that signals
// that connectivity is good, but the coordinator doesn't allow the user
// to join the call due to some reason (e.g., ended call, expired token...)
throw err;
}
const sfuId = this.credentials?.server.edge_name || '';
const failures = (sfuJoinFailures.get(sfuId) || 0) + 1;
sfuJoinFailures.set(sfuId, failures);
if (failures >= 2) {
joinData.migrating_from = sfuId;
}

const sfuId = this.credentials?.server.edge_name || '';
const failures = (sfuJoinFailures.get(sfuId) || 0) + 1;
sfuJoinFailures.set(sfuId, failures);
if (failures >= 2) {
joinData.migrating_from = sfuId;
if (attempt === maxJoinRetries - 1) {
throw err;
}
}

if (attempt === maxJoinRetries - 1) {
throw err;
}
await sleep(retryInterval(attempt));
}

await sleep(retryInterval(attempt));
} catch (error) {
callingX?.endCall(this);
throw error;
}
};

Expand Down Expand Up @@ -1126,7 +1142,9 @@ export class Call {
// re-apply them on later reconnections or server-side data fetches
if (!this.deviceSettingsAppliedOnce && this.state.settings) {
await this.applyDeviceConfig(this.state.settings, true);
globalThis.streamRNVideoSDK?.callManager.start();
globalThis.streamRNVideoSDK?.callManager.start({
isRingingTypeCall: this.ringing,
});
this.deviceSettingsAppliedOnce = true;
}

Expand Down
1 change: 1 addition & 0 deletions packages/client/src/devices/SpeakerManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ export class SpeakerManager {
this.defaultDevice = defaultDevice;
globalThis.streamRNVideoSDK?.callManager.setup({
defaultDevice,
isRingingTypeCall: this.call.ringing,
});
}
}
Expand Down
27 changes: 22 additions & 5 deletions packages/client/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import type { Comparator } from './sorting';
import type { StreamVideoWriteableStateStore } from './store';
import { AxiosError } from 'axios';
import { RejectReason } from './coordinator/connection/types';
import { Call } from './Call';

export type StreamReaction = Pick<
ReactionResponse,
Expand Down Expand Up @@ -345,26 +346,42 @@ export type StartCallRecordingFnType = {
): Promise<StartRecordingResponse>;
};

type StreamRNVideoSDKCallManagerRingingParams = {
isRingingTypeCall: boolean;
};

type StreamRNVideoSDKCallManagerSetupParams =
StreamRNVideoSDKCallManagerRingingParams & {
defaultDevice: AudioSettingsRequestDefaultDeviceEnum;
};

type StreamRNVideoSDKCallingX = {
startCall: (call: Call) => Promise<void>;
endCall: (call: Call) => Promise<void>;
};

export type StreamRNVideoSDKGlobals = {
callingX: StreamRNVideoSDKCallingX;
callManager: {
/**
* Sets up the in call manager.
*/
setup({
defaultDevice,
}: {
defaultDevice: AudioSettingsRequestDefaultDeviceEnum;
}): void;
isRingingTypeCall,
}: StreamRNVideoSDKCallManagerSetupParams): void;

/**
* Starts the in call manager.
*/
start(): void;
start({
isRingingTypeCall,
}: StreamRNVideoSDKCallManagerRingingParams): void;

/**
* Stops the in call manager.
*/
stop(): void;
stop({ isRingingTypeCall }: StreamRNVideoSDKCallManagerRingingParams): void;
};
};

Expand Down
15 changes: 15 additions & 0 deletions packages/react-native-callingx/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org

root = true

[*]

indent_style = space
indent_size = 2

end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
3 changes: 3 additions & 0 deletions packages/react-native-callingx/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
*.pbxproj -text
# specific for windows script files
*.bat text eol=crlf
1 change: 1 addition & 0 deletions packages/react-native-callingx/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/android/bin
1 change: 1 addition & 0 deletions packages/react-native-callingx/.nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v22.20.0
1 change: 1 addition & 0 deletions packages/react-native-callingx/.watchmanconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
23 changes: 23 additions & 0 deletions packages/react-native-callingx/Callingx.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
require "json"

package = JSON.parse(File.read(File.join(__dir__, "package.json")))

Pod::Spec.new do |s|
s.name = "Callingx"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
s.name = "Callingx"
s.name = "stream-io-react-native-callingx",

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

consistency with our other libraries

s.version = package["version"]
s.summary = package["description"]
s.homepage = package["homepage"]
s.license = package["license"]
s.authors = package["author"]

s.platforms = { :ios => min_ios_version_supported }
s.source = { :git => "https://github.com/GetStream/stream-video-js/tree/main/packages/react-native-callingx.git", :tag => "#{s.version}" }

s.source_files = "ios/**/*.{h,m,mm,swift}"
s.public_header_files = "ios/CallingxPublic.h"
s.swift_version = "5.0"

s.dependency "stream-react-native-webrtc"

install_modules_dependencies(s)
end
Loading
Loading