Skip to content

Add VoIP example - #80

Merged
Magmusacy merged 11 commits into
mainfrom
FCE-3653
Aug 20, 2026
Merged

Add VoIP example#80
Magmusacy merged 11 commits into
mainfrom
FCE-3653

Conversation

@Magmusacy

Copy link
Copy Markdown
Contributor

No description provided.

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

linearBot commented Aug 6, 2026

Copy link
Copy Markdown

FCE-3653

CopilotAI 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
FileDescription
mobile-react-native/voip-call/server/README.mdDocuments server run, credentials setup, signaling, and push payload formats.
mobile-react-native/voip-call/server/main.tsImplements Deno push + signaling server with SQLite registry and avatar hosting.
mobile-react-native/voip-call/server/deno.lockPins Deno dependencies for the server.
mobile-react-native/voip-call/server/deno.jsonDefines server task and import map for Deno.
mobile-react-native/voip-call/server/.gitignoreIgnores local DB and credential artifacts.
mobile-react-native/voip-call/server/.env.examplePlaceholder for server environment configuration examples.
mobile-react-native/voip-call/README.mdTop-level example instructions (credentials, env, running on devices).
mobile-react-native/voip-call/app/tsconfig.jsonApp TypeScript configuration (strict mode).
mobile-react-native/voip-call/app/src/user/UserProvider.tsxManages persisted username session and user list retrieval.
mobile-react-native/voip-call/app/src/user/UserContext.tsDefines user context types and hook.
mobile-react-native/voip-call/app/src/theme/colors.tsAdds theme color tokens used across the UI.
mobile-react-native/voip-call/app/src/screens/UsersScreen.tsxRenders user list, refresh, and call initiation UI.
mobile-react-native/voip-call/app/src/screens/OutgoingCallView.tsxOutgoing “ringing” UI while waiting for connection.
mobile-react-native/voip-call/app/src/screens/LoginScreen.tsxSimple username login screen.
mobile-react-native/voip-call/app/src/screens/InCallView.tsxActive call UI (audio/video), including mute/hold/audio route controls.
mobile-react-native/voip-call/app/src/screens/CallScreen.tsxOwns room join/leave lifecycle and connection detection.
mobile-react-native/voip-call/app/src/hooks/useRequestPermissions.tsRequests mic/camera (+ Android notifications) permissions.
mobile-react-native/voip-call/app/src/hooks/useRecentsRedial.tsHandles iOS Recents redial intents via SDK pending intent.
mobile-react-native/voip-call/app/src/hooks/usePlaceCall.tsInitiates calls via server push then starts native call UI.
mobile-react-native/voip-call/app/src/hooks/useDeviceRegistration.tsRegisters device VoIP token + platform with the server.
mobile-react-native/voip-call/app/src/hooks/useCallSignaling.tsWebSocket signaling for call cancel/reject flows.
mobile-react-native/voip-call/app/src/hooks/useCallRoom.tsSerializes room join/leave and media start/stop during calls.
mobile-react-native/voip-call/app/src/components/VideoCallView.tsxFaceTime-style video layout with PiP local preview.
mobile-react-native/voip-call/app/src/components/index.tsBarrel exports for shared components.
mobile-react-native/voip-call/app/src/components/InCallButton.tsxReusable in-call control button component.
mobile-react-native/voip-call/app/src/components/Avatar.tsxAvatar rendering with image fallback to initials and speaking highlight.
mobile-react-native/voip-call/app/README.mdApp-specific run notes and iOS native registration explanation.
mobile-react-native/voip-call/app/prettier.config.jsApp formatting configuration.
mobile-react-native/voip-call/app/package.jsonApp dependencies and scripts.
mobile-react-native/voip-call/app/index.jsExpo entrypoint registering the root component.
mobile-react-native/voip-call/app/babel.config.jsBabel configuration for Expo.
mobile-react-native/voip-call/app/App.tsxComposes providers, routes screens by session/call state, wires signaling.
mobile-react-native/voip-call/app/app.jsonExpo app configuration (bundle/package IDs, plugins, permissions).
mobile-react-native/voip-call/app/.gitignoreIgnores native folders, build output, and local Google services file.
mobile-react-native/voip-call/app/.eslintrc.jsESLint configuration for the app.
mobile-react-native/voip-call/app/.env.exampleDocuments required Expo public env vars.
mobile-react-native/README.mdAdds 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 threadmobile-react-native/voip-call/server/main.ts Outdated
Comment threadmobile-react-native/voip-call/server/main.ts Outdated
Comment threadmobile-react-native/voip-call/server/main.ts Outdated
@vercel

vercelBot commented Aug 6, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
moq-demoReadyReadyPreviewAug 20, 2026 9:11am

Request Review

Comment threadmobile-react-native/voip-call/app/src/hooks/useCallRoom.ts

@czerwiukkczerwiukk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

got scared but just overseen the 7k lines yarn.lock lol

@czerwiukkczerwiukk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Readmes are OK and straight to the point. The code quality could be overall improved, there are some components that feel a bit clustered and the backend file would benefit from breaking it down.

Comment threadmobile-react-native/voip-call/server/main.ts Outdated
Comment threadmobile-react-native/voip-call/app/src/screens/InCallView.tsx Outdated
@Magmusacy
Magmusacy merged commit 8ed92bd into mainAug 20, 2026
3 checks passed
@Magmusacy
Magmusacy deleted the FCE-3653 branch August 20, 2026 09:13
Sign up for freeto 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.

3 participants

@Magmusacy@czerwiukk