Giter Club home page Giter Club logo

digitalautonomy / wahay Goto Github PK

View Code? Open in Web Editor NEW
125.0 11.0 15.0 20.16 MB

an easy-to-use, secure and decentralized conference call application (this repository is a mirror of an internal work repository)

Home Page: https://wahay.org

License: GNU General Public License v3.0

Makefile 1.34% Go 89.92% Shell 0.72% Ruby 0.49% HTML 1.49% SCSS 6.04%
mumble tor hidden-services onion-services calling conference-calls autonomy privacy security decentralization

wahay's Introduction

Wahay

An easy-to-use, secure and decentralized conference call application.

GitHub issues GitHub forks GitHub stars License: GPL v3


Wahay is an application that allows you to easily host and participate in conference calls, without the need for any centralized servers or services. We are building a voice call application that is meant to be as easy-to-use as possible, while still providing extremely high security and privacy out of the box.

In order to do this, we use Tor Onion Services in order to communicate between the end-points, and we use the Mumble protocol for the actual voice communication. We are doing extensive user testing in order to ensure that the usability of the application is as good as possible.

Documentation

For full documentation, visit wahay.org.

Installing

For end-users, please refer to installation instructions on the website. We provide several different options for installation there. If you are a developer, installing the application should be as easy as cloning the repository and running make build.

Security warning

Wahay is currently under active development. There have been no security audits of the code, and you should currently not use this for anything sensitive.

Language

The language to be used is the same configured under LANG environment variable.

Example:

$ export LANG="en_US.utf8"

Compatibility

The current version of Wahay is compatible with all major Linux distributions. It is possible that the application can run on macOS or Windows, but at the moment we have not tested it. We are planning on adding official macOS and Windows compatibility in the near future.

About the developers

Wahay is developed by the NGO Centro de Autonomía Digital, based in Quito, Ecuador.

License

Wahay is licensed under the GPL version 3.

wahay's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wahay's Issues

Android App

Please make an Android app once the desktop apps are done. And please release the Android app on F-Droid so degoogle Android users can download the app.

Feature Request: Game Overlay

Please add a feature to have a Wahay overlay in games. The Mumble overlay is a great overlay that works. This will make Wahay a good gaming voice chat since Wahay does not require a server like Mumble and Mumble servers cost money and Discord has poor privacy.

Gaming Overlay in games
Overlay hotkey (A setting to choose the overlay hotkey)
Overlay shows who is talking

error: The repository 'no longer has a Release file.

hi, dear team wahay

i have the installed version: 0.0~git20200605.d3f0d21-1

I am using Debian Buster and I installed wahay via repository:

/etc/apt/sources.list.d/wahay.list

deb https://dl.autonomia.digital/debian buster main
deb-src https://dl.autonomia.digital/debian buster main

the software is working great, thanks

but today i realized that when I am updating my repos the following error appears:

E: The repository 'https://dl.autonomia.digital/debian buster Release' no longer has a Release file.

thanks in advance

"Connection refused" in Mumble when hosting on Whonix

Steps to reproduce

  1. Install the onion-grater profile into Whonix-Gateway.
  2. Run Wahay on Whonix-Workstation.
  3. Host a meeting.
  4. Join your own meeting.

Expected results

Mumble should connect.

Observed results

Mumble says Server connection failed: Connection refused.

Other notes

This is because the Tor daemon is receiving an IP of 0.0.0.0 for the ADD_ONION event, thus it's forwarding the incoming onion service connections to the wrong IP.

chat / persistent sessions

The conference URLs are ephemeral and exist only for the time of the meeting. This makes it harder for someone to get into a meeting without being invited.

Certainly a valid viewpoint.

However, constantly re-creating sessions is tedious. Then one also has to always re-share the secret join link over a pre-secure channel. And due to usability issues, many users are short of pre-secure channels.

For me, it's much more convenient to once set up a messenger and then have something like a contract list where people can be re-contacted later.

There's also currently as far as I know no onion to onion messenger. (TorChat was but was abandoned, never got onion v3 support.)

Could you please consider extending wahay to become a chat (re-using mumble chat feature)?

Group chat in Wahay meetings

Mumble normally has a group chat that allows people to write during a meeting. This is useful when some has issues with audio, or to ask questions without interrupting the speaker. However this chat function is not working in Wahay, you can only do one on one chats.

Create an appimage and relax

Looking at https://wahay.org/download.html it says alot of headache to support multiple Linux distros, Well the solution is simple by just having 1 image for all of the distros through https://appimage.org/ and some advantages of having that are:

Add missing package to debian installation

In this instruction:

https://wahay.org/documentation/getting-started/installation/#debian-and-ubuntu

it only recommend to install curl, but later we find this command:

echo deb https://dl.autonomia.digital/debian $(lsb_release -c | cut -f 2) main | sudo tee /etc/apt/sources.list.d/wahay.list

This wont work as well, because lsb-release and apt-transport-https packages are not installed by default. (in debian similar to curl)

So to fix this in the first command we should add:

sudo apt install curl lsb-release apt-transport-https

Meeting can't start on archlinux

Wahay can't start, can be reproduced following:

Wahay installed 08.06.2020 from
https://wahay.org/downloads/wahay-latest :

Wahay (commit: d3f0d21 (d3f0d21) tag:
(no tag) built: 2020-06-05 00:19:30)

manually installed dependencies:

  • mumble 1.3.0-9
  • xclip-0.13-3
  • tor-0.4.3.5-2

OS: Parabola Linux (libre version of archlinux)

Steps to reproduce:

  1. run: ./wahay-latest
  2. Host meeting
  3. Fill meeting screen and click "Start Meeting"
    → if "Automatically join meeting" is set, gets Error screen.
    → if "Automatically join meeting" is not set, gets "Now you are hosting
    a meeting" screen, and gets Error screen on "Join".

Sample stdout for hosting meeting without password:
./wahay-latest

INFO[0000] Detected language: en
INFO[0000] Using Tor binary found in: /usr/bin/tor
INFO[0000] Saving the config file to:
/home/user/.local/share/wahay/tor008621676/torrc INFO[0007] Using
Mumble located at: /tmp/mumble897446107/mumble INFO[0007] Using Mumble
environment variables: [] time="2020-06-08T23:29:05+02:00" level=info
msg=Grumble time="2020-06-08T23:29:05+02:00" level=info msg="Using data
directory: /tmp/wahay344371838" [1] 2020/06/08 23:29:24.909220 Started:
listening on 127.0.0.1:13300 INFO[0055] Storing Mumble client
certificate digest=08154c7de67b2713c87920a0aa07c6cf7a3f755f
hostname=whvdbykiz2tvyt72xnlxmlm5qyl5gyo5dicqr4masgtrbx6pwdozn6yd.onion
port=64738 ERRO[0056] joinMeetingHost() error: error: the service can't
be started INFO[0056] reportError(we couldn't start the meeting)

Process screens attached.

I tried to set debug option from settings, but no specific log file is
created or saved under indicated location. The same happens when
running ./wahay-latest --log /home/user/.config/wahay.log → no log
created.

I tried with tor service running and stopped, makes no difference
neither.

err1_meeting_screen
err2
err3-error

Bump vendored torgo

The vendored torgo dependency was last updated in this repo in 2019. Upstream has since merged some improvements (specifically wybiral/torgo#3 and wybiral/torgo#4) that would be helpful for running Wahay under Whonix. Any chance the vendored torgo could be bumped to latest from upstream?

Cannot generate translations when working on fork repository

Expected Behavior

When running $ make gen-ui-locale on root folder the execution should succeed generating file /gui/catalog/catalog.go using lang files in /gui/locales (ar, en, es, ...).

Actual Behavior

The command $ make gen-ui-locale exits with errors :

cd gui && make generate-locale
make[1]: Entering directory '/home/[username]/go/src/github.com/[username]/wahay/gui'
# This beautiful code is necessary because gotext
# will barf if the golang.org/x/text/message package
# exists in the vendor directory when running...
# The world of programming is beautiful
rm -rf ../vendor/golang.org/x/text
go generate -x i18n.go
gotext -srclang=en update -out=catalog/catalog.go -lang=en,es,sv,ar,fr
/home/[username]/go/src/github.com/[username]/wahay/gui/i18n.go:23:28: cannot use tag (variable of type language.Tag) as language.Tag value in argument to message.NewPrinter
gotext: extract failed: : : couldn't load packages due to errors: github.com/[username]/wahay/gui
i18n.go:3: running "gotext": exit status 1
Makefile:2: recipe for target 'generate-locale' failed
make[1]: *** [generate-locale] Error 1
make[1]: Leaving directory '/home/[username]/go/src/github.com/[username]/wahay/gui'
Makefile:26: recipe for target 'gen-ui-locale' failed
make: *** [gen-ui-locale] Error 2

Steps to Reproduce the Problem

  1. Fork https://github.com/digitalautonomy/wahay on GitHub
  2. go get your fork (ex : https://github.com/[username]/wahay)
  3. cd to your fork location (ex: ~/go/src/github.com/[username]/wahay)
  4. Verify that make build runs without problems from root folder
  5. Execute make gen-ui-locale

Specifications

Version: current
OS: Ubuntu 18.04
IDE: Visual Studio Code 1.45.1

Additional information

  • The command runs without problems when working on main repository
  • When on main repository folder, my IDE (vscode) shows no warning ; but when working on fork repository folder I get this highlight in file i18n.go on line 23:
    i18n = message.NewPrinter(tag, message.Catalog(message.DefaultCatalog))

cannot use tag (type "github.com/digitalautonomy/wahay/vendor/golang.org/x/text/language".Tag) as type "github.com/[username]/wahay/vendor/golang.org/x/text/language".Tag in argument to message.NewPrinter

Check torsock in the used distribution

Torsocks is usually installed by the Tor package on most platforms. Arch seems to be different in this regard. We should add an explicit check for the torsocks binary separate from the tor binaries to Wahay, and give a useful error to the user if torsocks is not found, something like "torsocks is not
installed, be sure to install this package in your distribution".

Segmentation fault error when try to run wahay

Hi,

I'm getting this error when I try to run wahay when I have mumble installed via apt on Debian12:

bin/wahay
INFO[0000] Detected language: en                        
INFO[0000] Using Tor binary found in: /usr/bin/tor      
INFO[0000] Saving the config file to: /home/m34n/.local/share/wahay/tor3896519667/torrc 
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x60 pc=0xc1aa78]

goroutine 21 [running]:
os/exec.(*Cmd).Output(0x3?)
	/usr/lib/go-1.19/src/os/exec/exec.go:675 +0x18
github.com/digitalautonomy/wahay/client.isThereAnAvailableBinary({0xc000542010, 0xf})
	/home/m34n/src/tahnous/src/wahay/client/binary.go:323 +0x3e2
github.com/digitalautonomy/wahay/client.searchBinaryInSystem()
	/home/m34n/src/tahnous/src/wahay/client/binary.go:290 +0x46
github.com/digitalautonomy/wahay/client.searchBinary(0x0?)
	/home/m34n/src/tahnous/src/wahay/client/binary.go:190 +0xa3
github.com/digitalautonomy/wahay/client.InitSystem(0x0?, {0x105f590?, 0xc0002fa000})
	/home/m34n/src/tahnous/src/wahay/client/client.go:66 +0xb3
github.com/digitalautonomy/wahay/gui.(*gtkUI).ensureMumble.func1.1()
	/home/m34n/src/tahnous/src/wahay/gui/mumble.go:18 +0x85
created by github.com/digitalautonomy/wahay/gui.(*gtkUI).ensureMumble.func1
	/home/m34n/src/tahnous/src/wahay/gui/mumble.go:15 +0xb8`

Mirror the repository/website to onion v3

Checking here:

https://wahay.org/documentation/getting-started/installation/#debian-and-ubuntu

I can only see TLS version of the repository , TLS with Clearnet its for surely better than using http plain connection but TLS has its own issues (like MITM through SSL-Strip) so as the clearnet like exposing metadata of the connection and DNS issues...

For the website to be on the hidden services this to insure the anonymity for the user and the security when downloading or visiting wahay.

Cant hear anything audio is not transmitting

I setup the server on Debian 10. Everything setup correctly and i launched the server.

I downloaded Mumla from F-Droid to both a Pixel 4a with GrapheneOs and Pixel 3 with CalyxOS.

On both devices i successfully connected to the Wahay server via Orbot.

Everything looks fine no errors you just hear anything. I tried talking from the PC and verified the mic is working and receiving the input via Audio Statistics.

No audio came through on any of the devices. I also tried communicating audio from the mobile devices and none of those worked either.

I have setup Mumble as a hidden service using the whonix guide and that worked up until a few months i go i think system updates broke it.

Wahay is for sure not working despite everything looking good i see no obvious sign of error to explain why audio is not being transmitted.

Brazilian portuguese locale

I will add the Brazilian locale.

Generally, the locale code for brazilian portuguese is pt-br. Any opposition for adding it at pt-br? Might as well be just pt.

iOS App

Please make an iOS app once the desktop apps are done.

Listening on 127.0.0.1 might cause problems when Wahay and Tor on different machines

Based on

defaultHost = "127.0.0.1"
, it looks like Wahay is listening for incoming connections via the 127.0.0.1 network interface? If that's accurate, it seems like that would cause problems for users who are running Wahay and Tor on different machines (e.g. Whonix). Is there some workaround for this already in the code that I didn't find? If there's no workaround, may I request adding support for listening on other network interfaces, so that Whonix-style use cases will work?

404 Not Found for Debian repo

Hi,

It seems that the repository for Debian Buster is not working.

My log

Ign:19 https://dl.autonomia.digital/debian buster InRelease
Err:20 https://dl.autonomia.digital/debian buster Release
  404  Not Found [IP: 185.108.76.90 443]
E: The repository 'https://dl.autonomia.digital/debian buster Release' no longer has a Release file.
N: No se puede actualizar de un repositorio como este de forma segura y por tanto está deshabilitado por omisión.

Thanks!

codecs CELT

Hi,

It's my first time here.

My setup

  • Debian 10
  • Wahay-debian-10-2020-03-10-85a2c28

Dependency message:

"No se pudieron encontrar codecs CELT adecuados para los otros clientes. No podrá hablar a todos los usuarios"

Thanks, Jacobo

User hosting a meeting doesn't need to connect via onion

As far as I can tell, all users who are connected to a meeting access it via the onion service. If that's accurate, it seems wasteful to make the user who's hosting the meeting do so, since they don't need to stay anonymous from themselves. Making the user who's hosting a meeting connect via localhost instead of the onion service would cut the latency in half for 2-party calls, and would improve the latency for the portions of conference calls where the host is a participant as well. Is there any security rationale for not doing so that I'm overlooking?

Create Sandboxing Profile

Its better to have sandboxing profile like apparmor or using namespaces through firejail (can have both), If one to be chosen then for surely apparmor profile.

macOS support

Hi! I love the idea of the project. I saw that the support for macOS is comming soon, and I wondered whether I could help porting it to the platform.

I am new to the project, will need some time to get familiar with the architecture and so on, but could any of you point me to some key things that need to be done in order to port it to macOS?

Inquiries about status or the project / Current plans / etc

Hi!

We've talked in the past about adding Wahay to Tails. One of the prerequesites is to have it in Debian.

There have been a few experiment done on both front (Tails issue tracker is a good starting point).

So, in order to determine if we indeed want to invest ressources on it now, I'd like to know what the status of this project is?

How do you see the future (say, mid-term / long term)?

Thanks! :)

Consider connection over I2P

I2P has many benefits over Tor for e.g:

  • P2P (Tor is not p2p).
  • Support UDP and TCP (Tor only TCP) , This is beneficially specially for VOIP.
  • Support IPv4 and IPv6 (Tor lately started to support some of IPv6, But mainly its IPv4).

I dont say to deprecate Tor , But having both wont harm and useful as well to use different paths of secure communications.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.