Alaznah Calling
Start with production 1:1 voice and video calling. Built on Hosted Signaling with a ready UI kit — and a foundation for more real-time experiences as your product grows.
npm install @alaznah/calling
import {
CallingProvider,
CallingScreen,
} from '@alaznah/calling';
<CallingProvider config={config}>
<CallingScreen userId={userId} />
</CallingProvider>Built for
Three steps most teams follow on day one.
Add @alaznah/calling, install pods, and rebuild your React Native app.
Learn more →Mint short-lived tokens from your backend. Never ship API secrets in the app.
Learn more →Wrap with CallingProvider, mount CallingScreen, and dial another userId.
Learn more →One package — choose audio or video per call.
Voice
Mute, speaker routing, reconnect handling, and a production voice UI.
Video
Camera on/off, flip, torch when available, and local/remote layouts.
Incoming
Foreground swipe-up accept, decline, and native wake when the app is killed.
UI kit
CallingScreen, CallingUI, themes, and slots — or go fully headless with hooks.
Push
Register device tokens and sync pending invites when the app returns.
Platform
Default wss://signal.alaznah.com — self-hosting available when you need it.
Provider, permissions, and CallingScreen — enough for a working dialer and incoming UI.
import {
CallingProvider,
CallingScreen,
requestCallPermissions,
DEFAULT_HOSTED_SIGNALING_URL,
} from '@alaznah/calling';
await requestCallPermissions({ video: true });
export function App() {
return (
<CallingProvider
config={{
signalingUrl: DEFAULT_HOSTED_SIGNALING_URL,
userId: 'alice',
getAuthToken: () => fetchToken(),
}}
>
<CallingScreen userId="alice" defaultPeerId="bob" />
</CallingProvider>
);
}Guides and API reference for every integration path.
Create a project, install the SDK, and ship your first real-time experience.