Microphone, camera, and notification permissions for Alaznah Calling.
Permissions
Request runtime permissions before placing or accepting calls.
import { requestCallPermissions } from '@alaznah/calling';
await requestCallPermissions({ video: false }); // voice
await requestCallPermissions({ video: true }); // videoiOS (Info.plist)
| Key | When |
|---|---|
NSMicrophoneUsageDescription | Always for calls |
NSCameraUsageDescription | Video calls |
| Background Modes → Audio | Keep audio in background |
| Background Modes → Voice over IP | VoIP / PushKit wake |
Also enable Push Notifications + (for CallKit wake) the PushKit / VoIP entitlement as required by your Apple setup — see Push Notifications.
Android (AndroidManifest.xml)
| Permission | When |
|---|---|
INTERNET | Always |
RECORD_AUDIO | Always for calls |
CAMERA | Video |
POST_NOTIFICATIONS | API 33+ notifications |
BLUETOOTH_CONNECT | Headset routing on newer APIs (as needed) |
| Full-screen intent / phone account | Native incoming UI (demo app shows a reference) |
Exact native incoming components are demonstrated in examples/basic-call.
Expo
Expo Go is not supported. Use a development build with the @alaznah/calling config plugin — Installation.
Checklist
- Add plist / manifest entries
- Rebuild native app
- Call
requestCallPermissionsbefore first call - Re-check after OS permission revoke