A Python CLI application for transmitting files as audio signals over RDP connections. This system allows you to transfer files from a remote Windows 11 host (via RDP) to a local Windows 11 machine using audio signals.
- Audio-over-RDP Transmission: Transmits files as audio signals that can be captured via WASAPI loopback
- Robust MFSK Modulation: Uses Multiple Frequency Shift Keying with configurable rates
- Forward Error Correction: Reed-Solomon FEC with interleaving for error resilience
- File Chunking: Supports large files by splitting them into manageable chunks
- WASAPI Loopback: Captures audio from RDP sessions without over-the-air transmission
- Windows 11 (both host and local machine)
- Python 3.8 or higher
- Audio devices with WASAPI support
# Install Python dependencies
pip install -r requirements.txtpython -m teleport list# Basic transmission
python -m teleport tx "path/to/file.txt"
# Advanced options
python -m teleport tx "path/to/file.txt" --rate fast --repeat 2 --device 0Transmit Options:
--rate: Transmission rate (safe,default,fast)--repeat: Number of times to repeat transmission--tone-start: Starting tone frequency in Hz (default: 1200)--tone-step: Tone step frequency in Hz (default: 120)--device: Audio device index (uselistcommand to find)
# Basic reception
python -m teleport rx "output_directory"
# Advanced options
python -m teleport rx "output_directory" --device 1 --timeout 300Receive Options:
--device: Audio device index for loopback capture--timeout: Receive timeout in seconds (default: 300)
| Rate | Tones | Symbol Rate | Throughput | Use Case |
|---|---|---|---|---|
safe |
8 | 800 sps | ~2.4 kbps | Poor audio quality |
default |
16 | 1000 sps | ~4 kbps | Balanced performance |
fast |
32 | 1600 sps | ~8 kbps | Good audio quality |
- File Preparation: File is split into chunks with metadata headers
- FEC Encoding: Reed-Solomon error correction and interleaving applied
- Framing: Data is organized into frames with CRC32 checksums
- MFSK Modulation: Digital data converted to audio tones
- Audio Transmission: Tones played through speakers (RDP redirects to local)
- Audio Reception: WASAPI loopback captures the audio signal
- Demodulation: Audio tones converted back to digital data
- FEC Decoding: Error correction and deinterleaving applied
- File Reassembly: Chunks reassembled into original file
- Use default audio output device
- RDP will redirect audio to local machine
- No special setup required
- Use WASAPI loopback device
- Look for "Speakers (Remote Audio)" or similar
- Use
python -m teleport listto find available devices
-
No Audio Devices Found
- Ensure audio drivers are installed
- Check Windows audio settings
- Try running as administrator
-
Poor Reception Quality
- Use
saferate for better reliability - Increase
--repeatfor redundancy - Check audio levels and device selection
- Use
-
File Transfer Fails
- Verify file size (very large files may timeout)
- Check audio device selection
- Ensure stable RDP connection
Run the test suite to verify functionality:
python test_teleport.py- Sample Rate: 48 kHz
- Channels: Mono
- Format: 32-bit float
- MFSK (Multiple Frequency Shift Keying)
- Tone spacing: 120 Hz
- Frequency range: 900-4500 Hz
- Raised cosine windowing
- Reed-Solomon (255, 223) code
- Interleaving depth: 8
- CRC32 frame checksums
- Chunk size: 64 KB
- File header with metadata
- SHA-256 integrity verification
- Requires stable RDP connection
- Audio quality affects transmission reliability
- Large files may take significant time
- Not suitable for real-time applications
This project is provided as-is for educational and experimental purposes.