Skip to content

React Native Phone

Ship a full-screen phone, a floating dynamic island, or your own call controls in a React Native app. The calling engine is the same JsSIP lifecycle as the React package, rebuilt around native media, permissions, audio routing, and touch.

Terminal window
npx jsr add @azeer-ui-widget/react-native-phone
npx expo install react-native-webrtc @config-plugins/react-native-webrtc react-native-svg
import { SipPhone, type SipConfig } from "@azeer-ui-widget/react-native-phone";
import { useSafeAreaInsets } from "react-native-safe-area-context";
export function PhoneScreen({ config }: { config: SipConfig }) {
return <SipPhone config={config} autoConnect variant="screen" insets={useSafeAreaInsets()} />;
}
You need Start with Guide
A dedicated phone screen or tab SipPhone variant="screen" Phone surfaces
A phone that floats over every screen SipPhoneIsland Dynamic island
Contact suggestions, speed dial, your own call buttons contacts, speedDial, extraControls Contacts & speed dial
Your brand, your language theme.preset, labels, formatNumber Themes, identity & motion
A phone inside a scroll view, modal, or bottom sheet variant="card" / variant="sheet" Phone surfaces
Your own call bar, keypad, or CRM screen PhoneProvider + usePhone() Compose your own
Calling without React PhoneClient from /core Compose your own
Topic React (web) React Native
Media Browser WebRTC react-native-webrtc on iOS/Android; browser WebRTC under react-native-web
Permissions Browser prompt iOS prompt or Android runtime permission; blocked state links to Settings
Speaker Output device (setSinkId) Earpiece/loudspeaker routing through an audio-session adapter
DTMF RFC 2833 RFC 2833 when available, automatic SIP INFO fallback
Audio visuals Web Audio analysers WebRTC statistics (identical on every platform)
Island Fixed-position panel Capsule, heads-up banner, swipe gestures, Android Back, iOS escape gesture
Lifecycle Page visibility Re-registers when the app returns to the foreground

This release handles one audio call per client. CallKit/ConnectionService, push-woken incoming calls, video, conferencing, recording, and emergency calling are outside its scope; Platforms & recovery explains how to integrate system call UI.