A network tunneling tool that uses SoroushPlus Messenger's voice call infrastructure and WebRTC DataChannel to bypass internet restrictions. Traffic is transmitted through LiveKit's encrypted DataChannel and appears as a regular voice call within the SoroushPlus platform.
Network traffic is relayed through a WebRTC DataChannel established during a SoroushPlus voice call. The server side (on a machine with unrestricted internet) proxies TCP connections on behalf of the client. The client exposes a local SOCKS5 proxy that applications can use.
- Python 3.10 or higher
- A SoroushPlus account (
web.splus.ir) - Access to browser DevTools to extract LiveKit tokens
pip install livekit==0.11.1 certifiOpen web.splus.ir and initiate a voice call with the other account.
In your browser:
- Press F12 (DevTools) → Network tab → filter by WS
- Find the WebSocket connection to
k.splus.ir:8446 - Copy the
access_tokenvalue from the connection URL
Each side of the call has its own unique token.
Server must connect first, then client.
cd soroushplus
python app.py serverPaste the server-side token when prompted.
cd soroushplus
python app.py clientPaste the client-side token when prompted.
A SOCKS5 proxy will be available at 0.0.0.0:1080.
curl --socks5-hostname 127.0.0.1:1080 http://ifconfig.meSet your browser or Telegram proxy to SOCKS5 127.0.0.1:1080. Enable "Proxy DNS" (remote DNS resolution).
Custom port:
python app.py client 8080soroushplus/
├── app.py Entry point and CLI
├── transport.py LiveKit connection layer
├── relay.py Session management (server + client)
├── socks5.py SOCKS5 proxy server
├── protocol.py Packet encode/decode
├── settings.py Configuration constants
└── README.md Documentation
- Tokens must be manually extracted from browser DevTools
- Speed: ~500 KB/s (~4 Mbps) — sufficient for Telegram and light browsing
- If the call drops, new tokens are needed
- No automatic call establishment (manual via web interface)
This project was developed in response to the severe internet restrictions imposed in Iran. It only functions when voice calls through SoroushPlus Messenger can be established via their LiveKit infrastructure.
Hoping for better days for Iran.
Developed by Ermia
For questions and suggestions:
- Telegram: @theermia
- Channel: @thisisermia
MIT License