
एन्क्रिप्टेड पुश-टू-टॉक वॉइस और टेक्स्ट संचार टोर हिडन सर्विसेज पर एंड-टू-एंड एन्क्रिप्शन, कॉन्फ़िगरेबल सिफर, ग्रुप कॉल के लिए रिले मोड, और एंटी-फोरेंसिक डेटा डिस्ट्रक्शन के साथ।
टोर छिपी सेवाओं पर एन्क्रिप्टेड पुश-टू-टॉक वॉयस संचार।
TerminalPhone एक एकल, स्व-निहित बैश स्क्रिप्ट है जो टोर नेटवर्क पर दो या अधिक पक्षों के बीच गुमनाम, एंड-टू-एंड एन्क्रिप्टेड वॉयस और टेक्स्ट संचार प्रदान करती है। यह एक वॉकी-टॉकी की तरह काम करता है: आप एक वॉयस संदेश रिकॉर्ड करते हैं, और यह संपीड़ित, एन्क्रिप्ट किया जाता है, और एक ही इकाई के रूप में दूरस्थ पक्ष को प्रेषित किया जाता है। आप कॉल के दौरान एन्क्रिप्टेड टेक्स्ट संदेश भी भेज सकते हैं। कोई सर्वर बुनियादी ढांचा नहीं, कोई खाते नहीं, कोई फ़ोन नंबर नहीं। आपका टोर छिपी सेवा .onion पता आपकी पहचान है।
T दबाएँ।.onion पतों का आदान-प्रदान करते हैं। दूरस्थ पता कॉल हेडर में प्रदर्शित होता है।S दबाएँ। अपना सिफर तुरंत बदलें; दूरस्थ पक्ष का प्रदर्शन स्वचालित रूप से अपडेट होता है।समर्थित वितरण: Debian/Ubuntu (apt), Fedora/RHEL (dnf), Arch (pacman).
---``` bash
git clone https://gitlab.com/here_forawhile/terminalphone.git cd terminalphone bash terminalphone.sh
स्वचालित रूप से सभी निर्भरताएँ स्थापित करने के लिए मेनू से विकल्प **7** चुनें। निम्नलिखित पैकेज स्थापित किए जाएंगे:
| पैकेज | उद्देश्य |
|---|---|
| `tor` | ओनियन रूटिंग और हिडन सेवा |
| `opus-tools` | आवाज़ संपीड़न (Opus कोडेक) |
| `sox` | ऑडियो प्रोसेसिंग उपयोगिताएँ |
| `socat` | Tor SOCKS प्रॉक्सी के माध्यम से द्विदिश TCP रिले |
| `openssl` | AES-256-CBC एन्क्रिप्शन और डिक्रिप्शन |
| `alsa-utils` | ऑडियो रिकॉर्डिंग और प्लेबैक (`arecord`, `aplay`) |
### macOS``` bash
git clone https://gitlab.com/here_forawhile/terminalphone.git
cd terminalphone
bash terminalphone.sh
Select option 7 to install all dependencies automatically. If Homebrew is not installed, the script will install it first, then install the following packages:
नोट: macOS ALSA के बजाय रिकॉर्डिंग (rec) और प्लेबैक (play) दोनों के लिए sox का उपयोग करता है। किसी अतिरिक्त ऑडियो पैकेज की आवश्यकता नहीं है।
Apple Silicon (M1/M2/M3+): यदि आपका टर्मिनल रोसेटा 2 (एक x86_64 प्रक्रिया) के तहत चल रहा है, जबकि Homebrew मूल ARM प्रीफिक्स (/opt/homebrew) में स्थापित है, तो brew install सामान्यतः Cannot install under Rosetta 2 in ARM default prefix त्रुटि के साथ विफल होता है। निर्भरता स्थापक अब इसका पता लगाता है और स्वचालित रूप से arch -arm64 के तहत Homebrew को पुनः चलाता है, इसलिए विकल्प 7 स्क्रिप्ट के लॉन्च होने के तरीके की परवाह किए बिना काम करता है।
TerminalPhone Termux के माध्यम से एंड्रॉइड उपकरणों का समर्थन करता है। एंड्रॉइड की सैंडबॉक्स्ड ऑडियो आर्किटेक्चर के कारण, दो अतिरिक्त घटकों की आवश्यकता होती है।
चरण 1: Termux स्थापित करें
F-Droid से Termux स्थापित करें। Play Store संस्करण का उपयोग न करें, क्योंकि यह पुराना है और अब अपडेट प्राप्त नहीं करता है।
चरण 2: Termux:API ऐप स्थापित करें
F-Droid से Termux:API स्थापित करें। यह एक अलग एंड्रॉइड एप्लिकेशन है (Termux पैकेज नहीं) जो Termux और एंड्रॉइड सिस्टम API के बीच एक सेतु प्रदान करता है। TerminalPhone को डिवाइस के माइक्रोफोन और मीडिया प्लेबैक तक पहुँचने के लिए इसकी आवश्यकता होती है।
डिवाइस पर Termux:API ऐप स्थापित न होने पर, termux-microphone-record और termux-media-player कमांड काम नहीं करेंगे, और ऑडियो रिकॉर्डिंग और प्लेबैक चुपचाप विफल हो जाएगा।
Termux:API ऐप स्थापित करने के बाद, संकेत मिलने पर इसे माइक्रोफोन अनुमतियाँ प्रदान करें।
चरण 3: Termux के अंदर Termux:API पैकेज स्थापित करें```bash pkg install termux-api
यह उन कमांड-लाइन उपयोगिताओं को स्थापित करता है जो Termux:API ऐप के साथ संचार करती हैं।
**चरण 4: TerminalPhone चलाएं**```bash
git clone https://gitlab.com/here_forawhile/terminalphone.git
cd terminalphone
bash terminalphone.sh
Select option 7 to install all remaining dependencies. The installer will run pkg upgrade first to resolve any package linking issues, then install tor, opus-tools, sox, socat, openssl-tool, ffmpeg, and termux-api.
Termux-विशिष्ट निर्भरताएँ:
| Package | उद्देश्य |
|---|---|
termux-api | एंड्रॉइड माइक्रोफोन और मीडिया प्लेयर के लिए CLI ब्रिज |
ffmpeg | एंड्रॉइड की M4A रिकॉर्डिंग को Opus एन्कोडिंग के लिए कच्चे PCM में परिवर्तित करता है |
To receive a call: Select option 1 (Listen for calls) To make a call: Select option 2 (Call an onion address)
कॉल शुरू करने से पहले दोनों पक्षों के पास Tor चल रहा होना चाहिए और समान साझा गुप्त कुंजी कॉन्फ़िगर होनी चाहिए।
---
## उपयोग
### मेनू विकल्प```
1 Listen for calls Wait for an incoming connection
2 Call an onion address Connect to a remote .onion endpoint
3 Show my onion address Display your .onion address (with optional QR code)
4 Set shared secret Configure the pre-shared encryption key
5 Test audio (loopback) Record and play back audio locally
6 Show status Display Tor, secret, and connection status
7 Install dependencies Install all required packages
8 Start Tor Start the Tor process and hidden service
9 Stop Tor Stop the Tor process
10 Restart Tor Stop and restart Tor
11 Rotate onion address Generate a new .onion address (destroys the old one)
12 Settings Configure Opus quality, PTT chime, Snowflake, auto-listen, PTT key, voice changer, security, Tor settings
13 Relay mode Start a zero-knowledge group bridge for N callers
0 Quit Stop Tor and exit
लिनक्स (दबाकर बोलें):
| कुंजी | कार्य |
|---|---|
| SPACE दबाकर रखें | आवाज़ संदेश रिकॉर्ड करें। छोड़ने पर स्वचालित रूप से भेजता है। |
| T | एक एन्क्रिप्टेड टेक्स्ट संदेश भेजें। |
| S | कॉल के बीच सेटिंग्स खोलें (सिफर बदलें, गुणवत्ता समायोजित करें)। |
| Q | कॉल समाप्त करें और मेनू पर वापस जाएँ। |
टर्मक्स (टॉगल मोड):
एंड्रॉइड का सॉफ्टवेयर कीबोर्ड दबाने पर नहीं, बल्कि छोड़ने पर की-इवेंट भेजता है। टर्मिनलफोन टर्मक्स पर टॉगल मोड का उपयोग करके इसे अनुकूलित करता है।
| कुंजी | कार्य |
|---|---|
| SPACE टैप करें | रिकॉर्डिंग शुरू करें। रोकने और भेजने के लिए फिर से टैप करें। |
bash terminalphone.sh install # Install dependencies bash terminalphone.sh test # Audio loopback test bash terminalphone.sh status # Show status bash terminalphone.sh listen # Listen for incoming calls bash terminalphone.sh call ADDRESS # Call a .onion address bash terminalphone.sh relay # Start relay mode (group bridge)
## यह कैसे काम करता है
TerminalPhone एक रिकॉर्ड-फिर-भेजें मॉडल का उपयोग करता है। जब आप PTT सक्रिय करते हैं, तो माइक्रोफ़ोन तब तक लगातार रिकॉर्ड करता है जब तक आप इसे छोड़ नहीं देते। पूरी रिकॉर्डिंग फिर निम्नलिखित पाइपलाइन के माध्यम से संसाधित की जाती है:```
SENDER RECEIVER
────── ────────
Microphone Speaker
│ ▲
▼ │
Raw PCM (8kHz, 16-bit, mono) Opus decode
│ ▲
▼ │
Opus encode (16kbps) AES-256-CBC decrypt
│ ▲
▼ │
AES-256-CBC encrypt Base64 decode
│ ▲
▼ │
Base64 encode ──▶ socat ──▶ Tor ──▶ socat ──▶ Receive
वायर प्रोटोकॉल TCP कनेक्शन पर लाइन-आधारित टेक्स्ट है:
Termux पर, एक अतिरिक्त रूपांतरण चरण Android के मूल M4A रिकॉर्डिंग प्रारूप को संभालता है, जो Opus एन्कोडिंग से पहले ffmpeg का उपयोग करके रॉ PCM में बदलता है।
एन्क्रिप्शन: सभी ऑडियो ट्रांसमिशन से पहले उपयोगकर्ता-कॉन्फ़िगरेबल सिफर (डिफ़ॉल्ट: AES-256-CBC) के साथ एन्क्रिप्ट किया जाता है। 21 क्यूरेटेड सिफर उपलब्ध हैं, जो सबसे मजबूत (256-बिट) से लेकर पर्याप्त (128-बिट) तक रैंक किए गए हैं। कुंजी PBKDF2 के साथ 10,000 पुनरावृत्तियों का उपयोग करके प्री-शेयर्ड सीक्रेट से प्राप्त की जाती है। एन्क्रिप्शन एप्लिकेशन लेयर पर लागू किया जाता है, जो Tor के ट्रांसपोर्ट एन्क्रिप्शन से स्वतंत्र होता है। सीक्रेट को कमांड-लाइन आर्गुमेंट के बजाय फ़ाइल डिस्क्रिप्टर (-pass fd:3) के माध्यम से OpenSSL को पास किया जाता है, इसलिए वे प्रोसेस टेबल में कभी उजागर नहीं होते।
सिफर वार्ता: दोनों पक्ष कनेक्ट होने पर और जब भी कॉल के बीच में सिफर बदला जाता है, सिफर नामों का आदान-प्रदान करते हैं। सिफर नाम गुप्त नहीं हैं (केरकहॉफ का सिद्धांत)। यदि स्थानीय और रिमोट सिफर मेल नहीं खाते हैं, तो दोनों पक्ष कॉल हेडर में लाल संकेतक देखते हैं।
परिवहन: सभी डेटा Tor हिडन सर्विस सर्किट के माध्यम से रूट किया जाता है। किसी भी पक्ष का IP पता उजागर नहीं होता है। कोई क्लियरनेट ट्रैफ़िक नहीं है। नेटवर्क पर्यवेक्षक द्वारा कनेक्शन का किसी भी पक्ष से संबंध नहीं जोड़ा जा सकता है।
ट्रैफ़िक विश्लेषण प्रतिरोध: रिकॉर्ड-देन-भेजें मॉडल अनियमित ट्रांसमिशन पैटर्न (अनियमित अंतराल पर परिवर्तनीय-लंबाई संदेश) उत्पन्न करता है, जो निरंतर स्ट्रीमिंग की तुलना में फिंगरप्रिंट करना कठिन है।
प्रमाणीकरण: साझा रहस्य अंतर्निहित प्रमाणीकरण के रूप में कार्य करता है। यदि दोनों पक्षों के पास समान रहस्य नहीं है, तो डिक्रिप्शन विफल हो जाता है और कोई ऑडियो नहीं चलाया जाता है। कनेक्ट होने पर, दोनों पक्ष कॉलर पहचान के लिए .onion पतों का आदान-प्रदान करते हैं। सीक्रेट को वैकल्पिक रूप से पासफ़्रेज़ के साथ आराम से एन्क्रिप्ट किया जा सकता है; लॉन्च होने पर, स्क्रिप्ट इसे अनलॉक करने के लिए पासफ़्रेज़ का संकेत देती है।
HMAC प्रोटोकॉल हस्ताक्षर (वैकल्पिक): सक्षम होने पर, प्रत्येक वायर प्रोटोकॉल संदेश -- जिसमें HANGUP, PTT_START और PING जैसे नियंत्रण सिग्नल शामिल हैं -- को साझा रहस्य से प्राप्त HMAC-SHA256 के साथ हस्ताक्षरित किया जाता है। प्रति संदेश एक यादृच्छिक नॉन्स शामिल होता है ताकि समान कमांड अद्वितीय हस्ताक्षर उत्पन्न करें। देखे गए नॉन्स को प्रति कॉल ट्रैक किया जाता है और डुप्लिकेट को अस्वीकार कर दिया जाता है, जिससे रिप्ले हमलों को रोका जा सके। HMAC सेटिंग कॉल शुरू होने पर एक रनटाइम फ़ाइल के माध्यम से स्थिर कर दी जाती है ताकि भेजने और प्राप्त करने वाले दोनों पथ हमेशा सहमत हों, भले ही कॉल के बीच में सेटिंग टॉगल की गई हो (परिवर्तन अगली कॉल पर प्रभावी होते हैं)। प्राप्त करने वाले छोर पर, अमान्य, लापता या दोहराए गए हस्ताक्षर वाले किसी भी संदेश को चुपचाप छोड़ दिया जाता है। यह उस हमलावर को रोकता है जो Tor सर्किट से समझौता करता है (लेकिन साझा रहस्य नहीं रखता) कमांड इंजेक्ट या रिप्ले करने से। कॉल के काम करने के लिए दोनों पक्षों को HMAC सक्षम करना होगा। संस्करण 1.1.3 से पहले के संस्करणों के साथ संगत नहीं है।
सीमाएं:
रिले मोड सुरक्षा: रिले वास्तुशिल्प रूप से शून्य-ज्ञान है। इसके पास कभी भी साझा रहस्य नहीं होता है और यह किसी भी सामग्री को डिक्रिप्ट नहीं कर सकता है। ऑडियो डेटा कर्नेल पाइप बफ़र्स (FIFO) के माध्यम से प्रवाहित होता है जो केवल मेमोरी में मौजूद होते हैं -- डिस्क पर कुछ भी नहीं लिखा जाता है। जब रिले बंद हो जाता है, तो सभी अस्थायी फ़ाइलें हटा दी जाती हैं। रिले ऑपरेटर यह निर्धारित नहीं कर सकता कि क्या कहा गया, कॉलर्स कौन हैं, या कोई संदेश पढ़ सकता है। रिले सभी नियंत्रण सिग्नलों (HANGUP, ID:, CIPHER:, PTT_START, PTT_STOP) को फ़िल्टर करता है और केवल AUDIO:, MSG:, और PING को आगे भेजता है। एक वैश्विक निष्क्रिय प्रतिद्वंद्वी कॉलर्स को रिले से जोड़ने के लिए ट्रैफ़िक सहसंबंध विश्लेषण कर सकता है, लेकिन संदेश सामग्री अपारदर्शी बनी रहती है।
रिले क्षमता: प्राथमिक बाधा Tor बैंडविड्थ है। Tor हिडन सर्विस थ्रूपुट अत्यधिक परिवर्तनशील है और सर्किट गुणवत्ता, रिले भीड़ और भौगोलिक दूरी पर निर्भर करता है। एक सामान्य 10-सेकंड का वॉइस संदेश ~20KB एन्क्रिप्टेड होता है, और प्रत्येक ट्रांसमिशन N-1 श्रोताओं तक फैलता है।
यथार्थवादी क्षमता फ़ोन (Termux) पर चलने वाले रिले के लिए 3--5 कॉलर्स है, या स्थिर कनेक्शन वाले समर्पित Linux मशीन पर 5--10 कॉलर्स है। मोबाइल उपकरणों पर चलने वाले रिले को अतिरिक्त बाधाओं का सामना करना पड़ता है: मोबाइल डेटा Tor के ऊपर विलंबता जोड़ता है, Android मेमोरी पुनः प्राप्त करने के लिए पृष्ठभूमि Termux प्रक्रियाओं को मार सकता है, और प्रत्येक जुड़े कॉलर के साथ बैटरी की खपत बढ़ जाती है। Tor सर्किट बैंडविड्थ पथ गुणवत्ता के आधार पर 50KB/s से 500KB/s तक भिन्न हो सकती है, और सर्किट मिड-सेशन में ख़राब या घूम सकते हैं। सिंगल-हॉप मोड थ्रूपुट में सुधार करता है लेकिन Tor रिले की भीड़ को समाप्त नहीं करता है। ये अनुमान PTT मॉडल मानते हैं जहां एक समय में केवल एक व्यक्ति प्रसारित करता है -- एक साथ प्रसारण प्रदर्शन को और ख़राब कर देगा। ग्रुप कॉल में कॉलर्स को संदेश आकार कम करने और रिले पर लोड कम करने के लिए अपनी Opus बिटरेट (सेटिंग्स → Opus एन्कोडिंग) कम करने पर विचार करना चाहिए।
सभी कॉन्फ़िगरेशन स्क्रिप्ट स्थान के सापेक्ष .terminalphone/ में संग्रहीत है:```
.terminalphone/
tor_data/ Tor data directory and hidden service keys
audio/ Temporary audio files (cleaned on exit)
pids/ Process ID tracking
shared_secret Encrypted shared secret file
torrc Generated Tor configuration
Default audio parameters (defined at the top of the script):
| पैरामीटर | डिफ़ॉल्ट | विवरण |
|---|---|---|
| `LISTEN_PORT` | 7777 | इनकमिंग कनेक्शन के लिए TCP पोर्ट |
| `TOR_SOCKS_PORT` | 9050 | Tor SOCKS प्रॉक्सी पोर्ट |
| `OPUS_BITRATE` | 16 | Opus एन्कोडिंग बिटरेट kbps में |
| `CIPHER` | aes-256-cbc | एन्क्रिप्शन सिफर (सेटिंग्स के माध्यम से कॉन्फ़िगरेबल) |
| `SNOWFLAKE_ENABLED` | 0 | सेंसरशिप बायपास के लिए Snowflake ब्रिज |
| `AUTO_LISTEN` | 0 | Tor शुरू होने पर कॉल के लिए ऑटो-लिसन |
| `PTT_KEY` | SPACE | पुश-टू-टॉक कुंजी (सेटिंग्स के माध्यम से कॉन्फ़िगरेबल) |
| `VOL_PTT` | 0 | वॉल्यूम-डाउन डबल-टैप PTT, केवल Termux (प्रयोगात्मक) |
| `EXCLUDE_NODES` | (खाली) | Tor ExcludeNodes देश सूची (जैसे `{US},{GB}`) |
| `HMAC_AUTH` | 0 | सभी प्रोटोकॉल संदेशों पर HMAC हस्ताक्षर (वैकल्पिक, दोनों पक्ष मेल होने चाहिए) |
| `OVERWRITE_DELETE` | 0 | हटाने से पहले टेम्प फ़ाइलों को यादृच्छिक डेटा से ओवरराइट करें (डिफ़ॉल्ट रूप से बंद) |
| `PTT_CHIME` | off | PTT सूचना ध्वनि प्रीसेट (off, tone, double, chirp, ding, click, custom) |
| `SINGLE_HOP` | 0 | कम विलंबता के लिए सिंगल-हॉप Tor मोड (सर्वर गुमनामी अक्षम करता है) |
| `SAMPLE_RATE` | 8000 | ऑडियो सैंपल दर Hz में |
| `CHUNK_DURATION` | 1 | ऑडियो परीक्षण चंक की अवधि सेकंड में |
---
## समस्या निवारण
**Tor बूटस्ट्रैप करने में विफल:**
Tor लॉग देखें `.terminalphone/tor_data/tor.log` पर। सामान्य कारणों में क्लॉक स्क्यू, Tor को ब्लॉक करने वाले नेटवर्क प्रतिबंध, या उसी SOCKS पोर्ट का उपयोग करने वाला कोई अन्य Tor इंस्टेंस शामिल है।
**Termux पर कोई ऑडियो नहीं:**
सत्यापित करें कि Termux:API ऐप F-Droid से स्थापित है (सिर्फ `termux-api` पैकेज नहीं)। Android सेटिंग्स में Termux:API ऐप को माइक्रोफ़ोन अनुमतियाँ दें। पुष्टि के लिए ऑडियो लूपबैक परीक्षण (विकल्प 5) चलाएँ।
**Termux पर ffmpeg स्थापना विफल:**
निर्भरताएँ स्थापित करने से पहले `pkg upgrade` चलाएँ। इंस्टॉलर स्वचालित रूप से ऐसा करता है, लेकिन यदि आपने पैकेज मैन्युअल रूप से स्थापित किए हैं, तो पुरानी साझा लाइब्रेरीज़ लिंकिंग त्रुटियाँ पैदा कर सकती हैं।
**ऑडियो परीक्षण काम करता है लेकिन कॉल में कोई आवाज नहीं:**
पुष्टि करें कि दोनों पक्ष समान साझा रहस्य का उपयोग कर रहे हैं। बेमेल रहस्य डिक्रिप्शन विफलता का कारण बनेंगे, कोई त्रुटि संदेश नहीं दिखेगा – कॉल कनेक्ट होता है लेकिन कोई ऑडियो नहीं सुनाई देता।
**Snowflake ब्रिज कनेक्ट होने में धीमा है:**
Snowflake ट्रैफ़िक को WebRTC प्रॉक्सी के माध्यम से रूट करता है, जो अतिरिक्त बूटस्ट्रैप समय जोड़ता है। Snowflake सक्षम होने पर Tor को 100% तक पहुँचने में 30–60 सेकंड (या अधिक) लगना सामान्य है। स्क्रिप्ट बूटस्ट्रैप के दौरान एक धैर्य सूचना प्रदर्शित करेगी।
**पहला Tor बूटस्ट्रैप धीमा है:**
पहले लॉन्च पर, Tor को संपूर्ण नेटवर्क सर्वसम्मति को शुरू से डाउनलोड करना होता है, जिसमें एक या दो मिनट लग सकते हैं। स्क्रिप्ट इसका पता लगाती है और एक सूचना प्रदर्शित करती है। पहली बार चलाने पर बूटस्ट्रैप टाइमआउट स्वचालित रूप से 120 से 300 सेकंड तक बढ़ाया जाता है। बाद के लॉन्च कैश्ड सर्वसम्मति डेटा का उपयोग करते हैं और बहुत तेज़ होते हैं।
**कॉल समाप्त करने पर मेनू पर वापस नहीं आता:**
यदि Q दबाने के बाद स्क्रिप्ट लटकती है, तो Ctrl+C दबाएँ क्लीनअप को बलपूर्वक करने और शेल पर वापस आने के लिए।
**macOS पर `Cannot install under Rosetta 2 in ARM default prefix`:**
यह Apple Silicon पर तब होता है जब टर्मिनल Rosetta 2 के तहत चल रहा हो (एक `x86_64` प्रक्रिया) लेकिन Homebrew मूल ARM प्रीफ़िक्स (`/opt/homebrew`) में स्थित हो। निर्भरता इंस्टॉलर (विकल्प **7**) अब इसका पता लगाता है और स्वचालित रूप से `brew` को `arch -arm64` के तहत फिर से चलाता है। यदि आप पैकेज मैन्युअल रूप से स्थापित कर रहे हैं, तो उन्हें स्वयं प्रीफ़िक्स करें: `arch -arm64 brew install <pkg>`। वैकल्पिक रूप से, स्क्रिप्ट को मूल रूप से `arch -arm64 bash terminalphone.sh` के साथ लॉन्च करें।
---
[दर्पण V1.0.0](https://bin.disroot.org/?e1356291b098cb75#FMQ4gxFwgdr3rjR1dpGS2csLmDPzDEkQW16fQ5P2Vt4y)
[दर्पण V1.0.1](https://bin.disroot.org/?d3bc0b8976113f58#AuUm4ev4vfeVmPyrh2KjAdhDP6WN4UX6yKQh9ERGD5Qt)
[दर्पण V1.0.2](https://bin.disroot.org/?6bc5b2fd046de1d7#G7TmnytrMeaM5AZYWth6BjjdqUb9RDf3K9erHUExKcGX)
[दर्पण V1.0.3](https://bin.disroot.org/?c5010f039e4693fd#Brp1w7LRQH9d5Ye5npZDPxNVR855SW9QUAk9cJaUuLYX)
[दर्पण V1.0.4](https://bin.disroot.org/?1831f6b78e349142#7zaAMVPNJL3MfbGJzjtm6cCPcvQftf4ULXupdne5dRKw)
[दर्पण V1.0.5](https://bin.disroot.org/?edfcfc844987ed03#56LuBbqbkfNDXfHpydyaB3VcWYhYenX18dtSvNumERY9)
[दर्पण V1.0.6](https://bin.disroot.org/?6c7b4774108b0c1c#GQPst46zjAYidndmNvytforX7MK2LyHanL4d829vVcv4)
[दर्पण V1.0.7](https://bin.disroot.org/?047003637623b4fa#EwmaysciDpiDkht8xV7ce3QcR9oxFXaxSikh4cLheXBB)
[दर्पण V1.0.8](https://bin.disroot.org/?06e38bd64e6fbdad#88MYs3dmq9rSMkmocpW3NYaaG4YfSdRCc9LJnEEzqGYp)
[दर्पण V1.0.9](https://bin.disroot.org/?950218a9a7c71c66#E7Z94VCGBZozrfXYhGwKyAdMeTxuavg92tA1pn2DbrrB)
[दर्पण V1.1.0](https://bin.disroot.org/?0b0da14f31521b3a#B1c23J8xFoZZKErvGG28PgbtfgtMUcDABWmQEoSZfXgh)
[दर्पण V1.1.1](https://bin.disroot.org/?d8e2d4f0300eb5af#9Y1C8CkcH9jAmv1fh4GZs1yYpJmWCG5xG3SvDYdwnJam)
[दर्पण V1.1.2](https://bin.disroot.org/?b1059616f880925f#8ef2oscZXUkPAsJZwGfWvLPQagVAk5GgW4DyssmLvQpG)
[दर्पण V1.1.3](https://bin.disroot.org/?b02658801518aaa7#JE6CsBLWUwAnTdBqeHgeXL7QF5UExgi9rnygcfyMZjCJ)
[दर्पण V1.1.4](https://bin.disroot.org/?d31248fc44c287a0#HQELFWFEMpM9kfTZSGDXTdGFMVKTejox5CajF9Vm4Www)
[दर्पण V1.1.5](https://bin.disroot.org/?284b723ed6aad15f#8VCrrri6yRpdg3uVDSY94wpx7LYkw5uYhm4Vbhka83sM)
[दर्पण V1.1.5.1](https://bin.disroot.org/?26aaef1eff20c271#4GxQQPSDhrszTu1RmERySNVqD2fZW5GZwm3JeL1parpB)
[दर्पण V1.1.6](https://bin.disroot.org/?ae8270578cd9e081#BbcDLU49XqhecvwviHRcdfrZ4vhKdL2AMeKaT5v9oLV1)
[दर्पण V1.1.7](https://bin.disroot.org/?457e4308abe582d8#B9LJG88rmUwrGHHuCof8WpE8CXGmkc2tyrXXicEiJFWk)
---
## लाइसेंस
MIT
jq की आवश्यकता है (मांग पर स्थापित)। प्रत्येक ट्रिगर के बाद वॉल्यूम स्वचालित रूप से बहाल हो जाता है।.onion पता एक स्थायी, रूट करने योग्य एंडपॉइंट के रूप में कार्य करता है। कोई पोर्ट फ़ॉरवर्डिंग या सार्वजनिक आईपी की आवश्यकता नहीं है।.onion पते को स्कैन करने योग्य QR कोड के रूप में प्रदर्शित कर सकता है। यदि qrencode स्थापित नहीं है, तो आपको इसे स्थापित करने के लिए संकेत दिया जाता है। QR कोड वैकल्पिक स्क्रीन बफ़र पर रेंडर होता है और खारिज होने पर नष्ट हो जाता है। एक नोट चेतावनी देता है कि कुछ QR स्कैनर स्वचालित रूप से http:// जोड़ते हैं; डायल करते समय यह उपसर्ग स्वचालित रूप से हटा दिया जाता है।.tmp एक्सटेंशन और यादृच्छिक हेक्स पहचानकर्ताओं का उपयोग करती हैं। फ़ाइल सिस्टम में कोई फ़ाइल प्रकार या समय मेटाडेटा लीक नहीं होता है।ExcludeNodes का उपयोग StrictNodes के साथ करता है।/dev/urandom से यादृच्छिक डेटा के साथ प्रत्येक अस्थायी फ़ाइल को ओवरराइट करता है। फ़ाइल का आकार पढ़ा जाता है, उतने बाइट्स यादृच्छिक डेटा conv=notrunc के साथ dd का उपयोग करके फ़ाइल पर लिखे जाते हैं, लेखन को sync के साथ स्टोरेज डिवाइस पर फ्लश किया जाता है, और फिर फ़ाइल को rm से हटा दिया जाता है। सभी संवेदनशील रनटाइम फ़ाइलों को कवर करता है: कच्ची PCM रिकॉर्डिंग, Opus-एन्कोडेड ऑडियो, एन्क्रिप्टेड पेलोड, डिक्रिप्टेड इनबाउंड ऑडियो और चैट, वॉइस प्रभाव मध्यस्थ, सिफर और HMAC कुंजी सामग्री, नॉन्स लॉग, सत्र झंडे, PID फ़ाइलें, नामित पाइप, रोटेशन पर टोर छिपी सेवा कुंजियाँ, और रिले सत्र डेटा। निर्देशिकाओं के लिए, अंदर की सभी फ़ाइलों को पुनरावर्ती रूप से ओवरराइट किया जाता है। एक अंतर्निहित परीक्षण विकल्प एक नमूना फ़ाइल बनाता है, मूल सामग्री को सादा पाठ और हेक्स में दिखाता है, इसे ओवरराइट करता है, और ओवरराइट किया गया हेक्स प्रदर्शित करता है ताकि उपयोगकर्ता नेत्रहीन पुष्टि कर सके कि डेटा नष्ट हो गया है। डिफ़ॉल्ट रूप से बंद है — अधिकांश उपयोगकर्ताओं के लिए, मानक rm पूरी तरह से ठीक है। TerminalPhone की अस्थायी फ़ाइलें छोटी और अल्पकालिक होती हैं, और डिस्क स्थान आमतौर पर सामान्य सिस्टम गतिविधि द्वारा जल्दी से पुन: उपयोग किया जाता है। यह सुविधा उन उपयोगकर्ताओं के लिए है जो फोरेंसिक रिकवरी के खिलाफ सुरक्षा की एक अतिरिक्त परत चाहते हैं। ध्यान दें: SSDs और फ्लैश स्टोरेज पर, वियर लेवलिंग का मतलब है कि ओवरराइट अलग-अलग भौतिक NAND सेल पर उतर सकता है — फ्लैश मीडिया पर पूर्ण-डिस्क एन्क्रिप्शन ही एकमात्र विश्वसनीय बचाव है। पारंपरिक HDDs पर, ओवरराइट उसी भौतिक स्थान पर डेटा को बदल देता है और सभी सॉफ़्टवेयर-आधारित पुनर्प्राप्ति के खिलाफ प्रभावी है।RELAY:1 हैंडशेक के माध्यम से स्वचालित रूप से रिले मोड का पता लगाते हैं और लाइव ग्रुप कॉलर काउंट प्रदर्शित करते हैं। एक कॉलर के छोड़ने से दूसरे डिस्कनेक्ट नहीं होते हैं। ऑपरेटर डैशबोर्ड कॉलर काउंट, अपटाइम और डेटा थ्रूपुट दिखाता है।| Package | Purpose |
|---|
tor | ओनियन रूटिंग और हिडन सर्विस |
opus-tools | वॉइस कंप्रेशन (Opus कोडेक) |
sox | ऑडियो रिकॉर्डिंग और प्लेबैक (rec, play) |
socat | Tor SOCKS प्रॉक्सी के माध्यम से द्विदिश TCP रिले |
openssl | AES-256-CBC एन्क्रिप्शन और डिक्रिप्शन |
| T | एक एन्क्रिप्टेड टेक्स्ट संदेश भेजें। |
| S | कॉल के बीच सेटिंग्स खोलें (सिफर बदलें, गुणवत्ता समायोजित करें)। |
| Q | कॉल समाप्त करें और मेनू पर वापस जाएँ। |
| Vol Down ×2 | वॉल्यूम बटन के माध्यम से रिकॉर्डिंग टॉगल करें (सेटिंग्स में Volume PTT सक्षम होना आवश्यक है)। |
| संदेश | विवरण |
|---|
ID:<onion> | कॉलर आईडी -- प्रेषक का .onion पता |
CIPHER:<name> | प्रेषक का एन्क्रिप्शन सिफर। कनेक्ट होने पर और बदलाव पर आदान-प्रदान होता है। |
PTT_START | प्रेषक ने रिकॉर्डिंग शुरू कर दी है |
PTT_STOP | प्रेषक ने समाप्त कर लिया है; ऑडियो अनुसरण करता है या भेजा जा चुका है |
AUDIO:<base64> | पूर्ण एन्क्रिप्टेड ऑडियो संदेश |
MSG:<base64> | एन्क्रिप्टेड टेक्स्ट संदेश |
HANGUP | प्रेषक डिस्कनेक्ट कर रहा है |
PING | कीपअलाइव सिग्नल |
RELAY:1 | रिले अभिवादन -- कनेक्ट होने पर रिले द्वारा भेजा जाता है, ग्रुप मोड को ट्रिगर करता है |
GROUP:<n> | ग्रुप आकार अद्यतन -- कॉलर्स के जुड़ने या छोड़ने पर रिले द्वारा प्रसारित |
| कॉलर्स | प्रति संदेश आउटबाउंड | अपेक्षित अनुभव |
|---|
| 2--3 | 20--40KB | अधिकांश कनेक्शनों पर विश्वसनीय |
| 3--5 | 40--80KB | स्थिर सर्किट पर अच्छा, मोबाइल डेटा पर देरी संभव |
| 5--10 | 80--180KB | सीमाओं को धक्का देते हुए, ट्रांसमिशन के बीच ध्यान देने योग्य देरी |
| 10+ | 180KB+ | अविश्वसनीय, महत्वपूर्ण कतार और संभावित संदेश हानि |