react-native-xavia-calling-sdk
v1.0.5
Published
React Native SDK for WebRTC-based audio/video calling
Maintainers
Readme
React Native Xavia Calling SDK
React Native SDK for WebRTC-based audio/video calling.
Supports one-to-one and group calls with real-time streams.
Features
- Audio & video calls
- Group calls support
- Real-time local and remote streams
- Toggle camera & microphone
- Online users tracking
- Call invitations, accept/reject handling
Installation
npm install react-native-xavia-calling-sdkor if using Yarn:
yarn add react-native-xavia-calling-sdkSetup
Android
In your android/app/src/main/AndroidManifest.xml, Add inside manifest
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />Optional (for better call stability):
<uses-permission android:name="android.permission.WAKE_LOCK" />iOS
Inside Info.plist, add these mandatory keys:
<key>NSCameraUsageDescription</key>
<string>This app requires camera access for video calling.</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app requires microphone access for audio calling.</string>Optional (recommended for calls in background / speaker):
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>Usage
Connect to the server
import WebRTCSDK from 'react-native-xavia-calling-sdk';
const serverUrl = 'https://your-server.com';
await WebRTCSDK.connect(serverUrl, 'someUserID', 'someUsername');Listen to events
WebRTCSDK.onLocalStream = (stream) => console.log('Local stream ready', stream);
WebRTCSDK.onRemoteStream = (participantId, stream) => console.log('Remote stream received', participantId);
WebRTCSDK.onIncomingCall = (callData) => console.log('Incoming call', callData);
WebRTCSDK.onCallAccepted = (data) => console.log('Call accepted', data);
WebRTCSDK.onCallRejected = (data) => console.log('Call rejected', data);
WebRTCSDK.onParticipantJoined = (participant) => console.log('Participant joined', participant);
WebRTCSDK.onParticipantLeft = (participant) => console.log('Participant left', participant);
WebRTCSDK.onError = (error) => console.error('WebRTC Error', error);
WebRTCSDK.onOnlineUsers = (users) => console.log('Online users', users);
Create & join a call
// Create a new call
const call = await WebRTCSDK.createCall('video'); // 'audio' or 'video'
const callId = call.callId;
// Join an existing call
await WebRTCSDK.joinCall(callId);Accept / reject call
WebRTCSDK.acceptCall(callId, callerId);
WebRTCSDK.rejectCall(callId, callerId);Toggle audio & video
WebRTCSDK.toggleAudio(false); // mute/unmute
WebRTCSDK.toggleVideo(false); // disable/enable cameraLeave call
WebRTCSDK.leaveCall();Disconnect from server
WebRTCSDK.disconnect();Support
For issues and support, contact: [email protected]
Developed by
xaviasolutions.com
