holium / campfire Goto Github PK
View Code? Open in Web Editor NEWThis project forked from datryn-ribdun/urbit-webrtc
Voice and video chat app built on the urbit-webrtc gall agents.
License: MIT License
This project forked from datryn-ribdun/urbit-webrtc
Voice and video chat app built on the urbit-webrtc gall agents.
License: MIT License
#32 introduced file sharing within a call. That implementation added the fileshare UI as part of the video controls (Controls.tsx
), but the ideal design would be to integrate it as part of the Chat box. This means the chat log would also have tha Accept/reject file transfer buttons, as well as a way to share files.
Rationale behind this is that file sharing doesn't fit with the rest of the controls (mute, video mute, screenshare, hangup) and makes more sense as a chat feature. Being part of chat means the context around a file (like why its being sent) is captured as a chat message, followed by the file itself.
Describe the bug
Every keypress in the dialer input element causes a network call to fetch information from the Icepond gall agent. This is unnecessary, we only need to fetch that information once. Mulitple calls is redudant.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
We only need to fetch the list of ICE servers once, no need to check each keypress.
Solution
This is likely some problem with the StartMeeting component being refreshed each time the inner input compontent changes.
Need to coordinate setting up WebRTC connections between multiple clients.
Describe the feature you'd like
Easy way to share files with people I'm in a call with.
Additional context
WebRTC supports sending arbitrary data over the wire. Should be possible to chunk up a file and send it over the data channels. We want functionality similar to https://www.sharedrop.io/
Describe the feature you'd like
We need to load contact store into local storage and provide a simple metadata lookup function.
Describe the feature you'd like
Upon creation of a PR, some infra (github actions, circle CI, jenkins, etc) should create two fake ships (~zod and ~bus), install the campfire desks, install the frontend, then provide links to the two instances (ship1.myships.com/apps/campfire/, ship2.myships.com/apps/campfire/).
Context
Whenever I make a PR, first thing I do is make two fakezods, install the campfire desk, build the React project, then upload that to the ship via the /docket/upload
page. This is error prone, and creates friction if someone wants to contribute to the project.
Describe the feature you'd like
Upon opening the app from grid and sitting on the "Gather Around" screen, the app requests access to my camera. This request seems reasonable at this moment in time, but then it actively turns on my camera and leaves it on even if I am not actively calling. It would be preferable for the camera to only turn on / be claimed by %campfire when I am actively calling someone else.
Is your feature request related to a problem? Please describe.
Roughly speaking, this could create a perception of a privacy problem.
Additional context
Google Meet is some decent prior art on this with their 'home screen' frame.
If I go to /apps/campfire/chat/zod
, it should initiate a call with ~zod. I don't want to have to open the app, type in their name, then hit "call".
to consider, can this be done using urbit links? something like web+urbitgraph://campfire/call/~datryn-ribdun
Describe the feature you'd like
I want to swap audio outputs. Sometimes I want to hear my campfire call in my headphones, but then I want to switch to using my speakers. Most video calling apps support this.
Try using this: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/setSinkId
I'm tracking these in one place, but they may be addressed in seprate PRs. If anyone finds other screenshare bugs, please comment so I can add them to this list
#32 added some files from the react icon library. This breaks the current pattern of creating our own icon files, and mixes with the Holium design-system's icons. We should have a consistent icon system, although I'm not sure which is best.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.