Skip to content

Add VoIP example - #80

Open
Magmusacy wants to merge 7 commits into
mainfrom
FCE-3653
Open

Add VoIP example#80
Magmusacy wants to merge 7 commits into
mainfrom
FCE-3653

Conversation

@Magmusacy

Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI review requested due to automatic review settings August 6, 2026 10:50
@linear

linear Bot commented Aug 6, 2026

Copy link
Copy Markdown

FCE-3653

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread mobile-react-native/voip-call/server/main.ts
Comment thread mobile-react-native/voip-call/server/main.ts
Comment thread mobile-react-native/voip-call/server/main.ts
@vercel

vercel Bot commented Aug 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
moq-demo Ready Ready Preview Aug 6, 2026 12:35pm

Request Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants