Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new VoIP call React Native example under mobile-react-native/voip-call/, consisting of an Expo client app and a small Deno push + signaling server to demonstrate ringing via native call UI (CallKit/Telecom) and connecting via a Fishjam room.
Changes:
- Introduces an Expo React Native VoIP calling client with login, user list, call screens (audio/video), and call lifecycle hooks.
- Adds a Deno server providing user registration, push routing (APNs/FCM), WebSocket signaling relay, and avatar serving.
- Adds setup/run documentation plus per-project tooling/config (Deno tasks/lockfile, Expo config, ESLint/Prettier, env examples).
Reviewed changes
Copilot reviewed 35 out of 47 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| mobile-react-native/voip-call/server/README.md | Documents server run, credentials setup, signaling, and push payload formats. |
| mobile-react-native/voip-call/server/main.ts | Implements Deno push + signaling server with SQLite registry and avatar hosting. |
| mobile-react-native/voip-call/server/deno.lock | Pins Deno dependencies for the server. |
| mobile-react-native/voip-call/server/deno.json | Defines server task and import map for Deno. |
| mobile-react-native/voip-call/server/.gitignore | Ignores local DB and credential artifacts. |
| mobile-react-native/voip-call/server/.env.example | Placeholder for server environment configuration examples. |
| mobile-react-native/voip-call/README.md | Top-level example instructions (credentials, env, running on devices). |
| mobile-react-native/voip-call/app/tsconfig.json | App TypeScript configuration (strict mode). |
| mobile-react-native/voip-call/app/src/user/UserProvider.tsx | Manages persisted username session and user list retrieval. |
| mobile-react-native/voip-call/app/src/user/UserContext.ts | Defines user context types and hook. |
| mobile-react-native/voip-call/app/src/theme/colors.ts | Adds theme color tokens used across the UI. |
| mobile-react-native/voip-call/app/src/screens/UsersScreen.tsx | Renders user list, refresh, and call initiation UI. |
| mobile-react-native/voip-call/app/src/screens/OutgoingCallView.tsx | Outgoing “ringing” UI while waiting for connection. |
| mobile-react-native/voip-call/app/src/screens/LoginScreen.tsx | Simple username login screen. |
| mobile-react-native/voip-call/app/src/screens/InCallView.tsx | Active call UI (audio/video), including mute/hold/audio route controls. |
| mobile-react-native/voip-call/app/src/screens/CallScreen.tsx | Owns room join/leave lifecycle and connection detection. |
| mobile-react-native/voip-call/app/src/hooks/useRequestPermissions.ts | Requests mic/camera (+ Android notifications) permissions. |
| mobile-react-native/voip-call/app/src/hooks/useRecentsRedial.ts | Handles iOS Recents redial intents via SDK pending intent. |
| mobile-react-native/voip-call/app/src/hooks/usePlaceCall.ts | Initiates calls via server push then starts native call UI. |
| mobile-react-native/voip-call/app/src/hooks/useDeviceRegistration.ts | Registers device VoIP token + platform with the server. |
| mobile-react-native/voip-call/app/src/hooks/useCallSignaling.ts | WebSocket signaling for call cancel/reject flows. |
| mobile-react-native/voip-call/app/src/hooks/useCallRoom.ts | Serializes room join/leave and media start/stop during calls. |
| mobile-react-native/voip-call/app/src/components/VideoCallView.tsx | FaceTime-style video layout with PiP local preview. |
| mobile-react-native/voip-call/app/src/components/index.ts | Barrel exports for shared components. |
| mobile-react-native/voip-call/app/src/components/InCallButton.tsx | Reusable in-call control button component. |
| mobile-react-native/voip-call/app/src/components/Avatar.tsx | Avatar rendering with image fallback to initials and speaking highlight. |
| mobile-react-native/voip-call/app/README.md | App-specific run notes and iOS native registration explanation. |
| mobile-react-native/voip-call/app/prettier.config.js | App formatting configuration. |
| mobile-react-native/voip-call/app/package.json | App dependencies and scripts. |
| mobile-react-native/voip-call/app/index.js | Expo entrypoint registering the root component. |
| mobile-react-native/voip-call/app/babel.config.js | Babel configuration for Expo. |
| mobile-react-native/voip-call/app/App.tsx | Composes providers, routes screens by session/call state, wires signaling. |
| mobile-react-native/voip-call/app/app.json | Expo app configuration (bundle/package IDs, plugins, permissions). |
| mobile-react-native/voip-call/app/.gitignore | Ignores native folders, build output, and local Google services file. |
| mobile-react-native/voip-call/app/.eslintrc.js | ESLint configuration for the app. |
| mobile-react-native/voip-call/app/.env.example | Documents required Expo public env vars. |
| mobile-react-native/README.md | Adds the VoIP Call example to the mobile RN examples index. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.