在沒有 PSTN 線路的情況下連接到模擬撥入 PSTN 終端
有一台沒有網際網路連接的電腦(“伺服器”),它位於沒有 GSM 信號的地方。連接到它的唯一方法是模擬調製解調器(US Robotics 56Kbit/s)。該調製解調器通過地理號碼連接到國家 PSTN 線路,伺服器(執行現代 Linux 發行版)配置為提供撥入串列終端。澄清一下,當你打電話到這條 PSTN 線路時,調製解調器會握手(我認為是 V90 協議),然後你會看到登錄資訊,然後你就進入了 ttyS0。沒有 IP/PPP 協議棧,只有串列終端。
我想以任何方式連接到該伺服器,不需要我隨身攜帶物理模擬調製解調器並且(更糟糕的是)找到物理 PSTN 線路,至少在意大利的商業環境中,這確實是一種稀缺資源。澄清一下:伺服器端的 PSTN 線路是唯一的途徑,但我希望能夠在客戶端沒有物理 PSTN 線路的情況下連接到它。
一些想法出現在我的腦海中,但我不知道它們是否可以真正實施:
- 通過藍牙/USB連接手機。舊手機導出了處理 AT 命令的 ttyUSB,但隨後無法 (AFAICT) 獲取音頻流。我不知道在技術上是否可以編寫一個撥打電話的 Android 應用程序,然後將音頻編碼為半原始 UDP 流。
- 通過 VOIP 路由呼叫。Google搜尋,有些人似乎在通過帶有 g711 (uLaw/aLaw) 的 VOIP 終端進行模擬調製解調器呼叫方面取得了喜憂參半的效果。看起來至少可以達到 9600bps,這對我來說已經足夠了。
- 即使上述其中一種是可能的,是否有任何可用的軟體可以模擬完整的 V90 協議/握手/任何東西並將音頻編碼/解碼為字節?
- 是否有任何線上服務向使用者提供模擬調製解調器電池?聽起來不是我個人會投資的業務,但你永遠不知道:)
- 是否有任何物理對像是現代 UMTS 等效的模擬調製解調器,例如通過 USB 連接的盒子,您將 SIM 放入其中,它可以發揮所有魔力,並在您的 PC 上為您提供 ttyUSB?
- 假設我只能物理訪問伺服器一次,我可以在伺服器上安裝什麼(硬體或軟體),這會讓我的生活更輕鬆嗎?唯一的要求是必須通過標準的國家PSTN線路(雙絞銅線),沒有其他方法可以獲取任何其他信號。調製解調器起初看起來是最好的選擇,但你永遠不知道。
謝謝!
我懷疑有很多方法可以做到這一點。想到的一個是回調。
您在伺服器上為調製解調器註冊了一個撥入 ISP 帳戶;這很簡單,而且沒有爭議。您將需要一個為您分配靜態地址的 ISP;如果這需要額外費用,請支付。
然後,您可以配置一些類似diald的東西來按需打開和關閉連結。然後編寫一個小腳本,可能使用swatch來檢測調製解調器日誌文件中出現的“RING”消息,當它看到它們時,生成 diald 認為“有趣”的流量 - 即導致它啟動線路的流量。
當您想通過正常網際網路連接到伺服器時,您可以從任何固定電話或 GSM 電話撥打連接到伺服器的電話線。伺服器上的腳本檢測到電話響鈴,並為撥號生成有趣的流量。Diald 啟動 PPP 連接,此時伺服器在已知的靜態 IP 地址上可用。
您使用正常的 Internet 工具,通過 SSH(或任何其他 IP 協議或您喜歡的組合)連接,直到完成。完成後,您斷開所有這些連接,並且在不久後撥號意識到線路空閒並掛斷調製解調器。
沖洗。重複。
可能的改進:如果您無法獲得提供靜態地址的 ISP 服務,您可以配置 diald,以便在 Internet 連結出現後發生的第一件事是將其目前 IP 地址通過電子郵件發送到預先安排的地址,或者以其他方式將其傳輸到網際網路。這樣,您可以在每次線路出現時找出它獲得的動態地址,以便您可以與它交談。但是靜態地址會更容易。
替代建議:考慮到大多數 GSM 手機很樂意與任何舊 POTS 號碼建立 PPP 連接,以建立終端會話。幾年前,我寫了這篇技術說明,介紹了讓帶有調製解調器的 GSM 手機能夠支持 AT 命令集(其中大多數)撥入 ISP 的具體細節。
讓 GSM 手機撥打標準固定電話而不是神奇的“啟動 GPRS”號碼是完全合法的,只需更換
atd*99***1#
和
atd0039nnnnnnnn
in
/etc/ppp/chat-gprs
,nnnnnnnn
您的伺服器的座機號碼在哪裡。請注意,這僅適用於 GPRS,也可能適用於 EDGE。3G 是一種以不同方式訪問的完全不同的協議,因此您只能通過這種方式獲得慢速(20kb/s 左右)連接。但是對於直接的終端會話,這可能就足夠了。