есть компьютер ("сервер"), на котором нет соединения с интернетом, и он находится в месте с нет сигнала GSM. Единственный способ подключиться к нему - аналоговый модем (US Robotics 56 Кбит / с). Этот модем подключен к национальной линии PSTN с географическим номером, а сервер (под управлением современного дистрибутива Linux) настроен на предоставление последовательного терминала с телефонным подключением. Чтобы уточнить, когда вы звоните по этой линии PSTN, модемное рукопожатие (я думаю, это протокол V90), затем вам предоставляется логин, а затем вы входите в ttyS0. Нет стека протоколов IP / PPP, только последовательный терминал.
Я хотел бы подключиться к этому серверу любым способом, который не требует от меня ношения физического аналогового модема и (что еще хуже) поиска физической линии PSTN, которая действительно является дефицитным ресурсом, по крайней мере, в бизнес-контексте здесь, в Италии. Чтобы уточнить: линия PSTN на стороне сервера - единственный путь, но я хотел бы иметь возможность подключаться к ней без физической линии PSTN на стороне клиента.
Некоторые идеи приходили мне в голову, но я не знаю, можно ли их реализовать на самом деле:
Подключить мобильный телефон через Bluetooth / USB. Старые телефоны экспортировали ttyUSB, который обрабатывал AT-команды, но тогда не было возможности (AFAICT) получить аудиопоток. Я не знаю, возможно ли технически написать приложение для Android, которое делает телефонный звонок, а затем кодирует звук в полу-необработанный поток UDP.
Маршрутизация звонка через VOIP. Погуглив, некоторые люди, похоже, достигли неоднозначного успеха при выполнении вызовов через аналоговый модем через завершение VOIP с g711 (uLaw / aLaw). Похоже, что можно получить минимум 9600 бит / с, что мне достаточно.
Даже если одно из вышеперечисленных возможно, существует ли какое-либо программное обеспечение, которое имитирует полный протокол V90 / рукопожатие / что угодно и конвертирует / декодирует аудио в байты?
Есть ли онлайн-сервис, который предлагает абонентам батарею аналоговых модемов? Непонятно, в какой бизнес я бы лично инвестировал, но мало ли :)
Есть ли какой-либо физический объект, который является современным эквивалентом аналогового модема для UMTS, например, ящик, подключенный через USB, куда вы вставляете SIM-карту, он творит всю магию и дает вам ttyUSB на вашем ПК?
Предполагая, что я могу физически получить доступ к серверу только один раз, могу ли я установить что-нибудь (оборудование или программное обеспечение) на сервере, что облегчило бы мою жизнь? Единственное, что необходимо - это пройти через стандартную национальную линию PSTN (двойная витая медная проволока), другого способа получить другой сигнал нет. Сначала модем казался лучшим вариантом, но мало ли.
Спасибо!
Я подозреваю, что есть много способов сделать это. На ум приходит Перезвони.
Вы регистрируете учетную запись dialin ISP для модема на сервере; что это достаточно просто, и неконфликтный. Вам понадобится ISP, который выделит вам статический адрес; если это будет стоить дополнительно, заплатите.
Затем вы настраиваете что-то вроде набирать номер для переключения вверх и вниз по запросу. Затем напишите небольшой сценарий, возможно, используя образецдля обнаружения сообщений «RING», появляющихся в лог-файлах модема, и, когда он их видит, для генерации трафика, который diald считает «интересным», т. е. трафика, который заставляет его поднимать линию.
Если вы хотите подключиться к серверу через обычный Интернет, вы звоните по телефонной линии, подключенной к серверу, с любого стационарного или GSM-телефона. Сценарий на сервере обнаруживает звонок телефона и генерирует интересный трафик для diald. Diald устанавливает PPP-соединение, после чего сервер становится доступен по известному статическому IP-адресу.
Вы, используя обычные интернет-инструменты, подключаетесь через SSH (или любой другой IP-протокол или их комбинацию, которая вам нравится), пока не закончите. Когда вы закончите, вы разрываете все эти соединения, и через некоторое время diald понимает, что линия свободна, и кладет модем.
Промыть. Повторение.
Возможные улучшения: если вы не можете получить службу ISP, которая выполняет статические адреса, вы можете настроить diald так, чтобы первое, что происходило после подключения к Интернету, это отправка текущего IP-адреса по электронной почте на заранее заданный адрес или другим способом передает это в Интернет. Таким образом, вы можете узнать, какой у него динамический адрес каждый раз при появлении линии, и поговорить с ним. Но статический адрес было бы проще.
Альтернативное предложение: учтите, что большинство телефонов GSM с радостью установят PPP-соединение с любым старым номером POTS, чтобы установить терминальный сеанс. я написал это технота несколько лет назад о тонкостях получения телефона GSM с модемом, который соблюдает набор AT-команд (а это большинство из них) для дозвона до ISP.
Совершенно законно, чтобы телефон GSM набирал стандартный стационарный номер вместо волшебного номера «вызовите GPRS», просто замените
atd*99***1#
с участием
atd0039nnnnnnnn
в /etc/ppp/chat-gprs
, где nnnnnnnn
- это стационарный номер вашего сервера. Обратите внимание, что это будет работать только с GPRS и, возможно, EDGE. 3G - это совершенно другой протокол, доступ к которому осуществляется по-разному, поэтому вы получите только медленное (20 кбит / с или около того) соединение. Но для прямого терминального сеанса этого может быть достаточно.
На рынке существует множество терминальных серверов - вы подключаетесь к ним по telnet / ssh, и после подключения вы можете взаимодействовать с одним или несколькими последовательными портами на консольном сервере, которые обычно подключаются через нуль-модемный кабель к другим серверам. Если на сервере есть последовательный порт, это лучший способ. Затем вы можете использовать мобильное широкополосное устройство для подключения и добавить динамический DNS или VPN-сервис для работы с изменениями IP.
Старые USB-модули GPRS / EDGE (или телефоны с USB) будут представлены в Linux как последовательное устройство (ttyUSB или ttyACM); должна быть возможность переключить inittab сервера, чтобы привязать к нему getty. Раньше я делал это с помощью внешнего GSM-модема (подключенного к фактическому последовательному порту); Думаю, он должен работать и с USB.
Если на сервере есть внутренний модем, а не последовательный порт, и вы не можете его заменить, все усложняется. VoIP может работать - чем ближе к сырому PCM, тем выше шансы. Фиксированные беспроводные терминалы (в основном сотовый телефон, но с портом FXS вместо динамика / микрофона / клавиатуры) также могут работать, но, вероятно, будут иметь те же проблемы, что и VoIP.
Я не уверен, что полностью понимаю ваши требования. Я наберу то, что, как мне кажется, вы просите, и перейду к следующему:
1) Есть сервер только с линией pstn, подключенной к аналоговому модему. 2) Вы хотите освободить телефонную линию (для других целей) и хотите сохранить доступ к серверу.
Если 1 и 2 верны, то я не вижу другого выбора, кроме как использовать какую-либо форму подключения к Интернету, USB-накопитель 3G должен предоставить вам соединение, которое вы можете использовать через ssh для выполнения любой административной задачи, которая может вам понадобиться.
Вы также можете установить какую-то линию xDSL, которая освободит вашу линию PSTN для использования в качестве обычного телефона и в то же время предоставит вам доступ в Интернет.