Thanks to visit codestin.com
Credit goes to github.com

Skip to content
View anazoa's full-sized avatar

Block or report anazoa

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
anazoa/README.md

Anazoa

Anazoa tunnels point-to-point IP traffic over a WebRTC video call on Russia's government-pushed Max platform. Both ends impersonate an Android Max client. IP packets are carried as tunnel frames embedded in the VP9 video bitstream, paced by Google Chrome libwebrtc's internal scheduler.

Inspired by the Protozoa work.

Expected tunneling bandwidth for a 720p video call is around 2 Mbps.

Usage

Two peers need to be configured, A and B.

  1. Use anazoa.toml.sample as a template for creating two anazoa.toml configuration files (it's advised to tweak fingerprint section) and for each peer run
cp anazoa.toml.sample anazoa.toml
edit anazoa.toml
anazoa-auth -c anazoa.toml login --phone +71234567890

Phone numbers must be different for the two peers.

Update both configuration files with:

  • token, signaling-user-id and remote-peer-id parameters you got after successful authentication,
  • media parameter pointing to an Opus audio file -- some audiobook will do.
  1. Run on both sides
anazoa-tun -c anazoa.toml

and then configure newly created tun0 (the name chosen via tun-name parameter) network interfaces (see scripts/setup-tun-test.sh for a sample).

  1. Allow to answer a call for peer A
anazoa-ctl -s /run/anazoa.sock answer always

Explicit answer permission is needed to mitigate active probing. In a real deployment, you may want to send an order for a callback via an independent channel (for example, e-mail) and allow answering for a short time period only:

anazoa-ctl -s /run/anazoa.sock answer 120

See scripts/callback.py for a ready-made e-mail based workflow.

  1. Make a call from peer B
anazoa-ctl -s /run/anazoa.sock call

After a WebRTC connection establishes, the tunnel is ready to be used.

To hang up the call, run on any side

anazoa-ctl -s /run/anazoa.sock hangup

Popular repositories Loading

  1. anazoa anazoa Public

    Anazoa WebRTC tunnel

    Rust 37 1