Подключение к аналоговому коммутируемому терминалу PSTN без линии PSTN

Есть компьютер ("сервер"), у которого нет подключения к Интернету, и он расположен в месте, где нет сигнала 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 (двойная витая медь), другого способа получить другой сигнал не существует. Поначалу модем выглядел как лучший вариант, но вы никогда не знаете.

Спасибо!

3 ответа

Решение

Я подозреваю, что есть много способов сделать это. Тот, который приходит на ум, является обратным вызовом.

Вы регистрируете учетную запись интернет-провайдера для модема на сервере; что это достаточно просто, и неконфликтный. Вам понадобится интернет-провайдер, который назначит вам статический адрес; если это стоит доплаты, заплати.

Затем вы настраиваете что-то вроде diald, чтобы приводить ссылку вверх и вниз по требованию. Затем напишите небольшой сценарий, возможно, с использованием swatch, для обнаружения сообщений "RING", появляющихся в лог-файлах модема, и, когда он их видит, для генерации трафика, который diald считает "интересным", то есть трафика, который заставляет его поднимать линию.

Если вы хотите подключиться к серверу через обычный интернет, вы звоните по телефонной линии, подключенной к серверу, с любого стационарного или GSM-телефона. Сценарий на сервере обнаруживает звонок телефона и генерирует интересный трафик для diald. Diald устанавливает соединение PPP, после чего сервер доступен по известному статическому IP-адресу.

Вы, используя обычные интернет-инструменты, подключаетесь через SSH (или любой другой IP-протокол или их комбинацию, которая вас устраивает), пока вы не закончите. Когда вы закончите, вы потеряете все эти соединения, и через некоторое время diald обнаружит, что линия свободна, и отключит модем.

Полоскание. Повторение.

Возможные улучшения: если вы не можете получить услугу интернет-провайдера, которая выполняет статические адреса, вы можете настроить diald так, чтобы первое, что происходит после подключения к Интернету, было то, что он отправляет свой текущий IP-адрес по электронной почте по заранее заданному адресу, или каким-то другим образом сообщает об этом в Интернет. Таким образом, вы можете узнать, какой динамический адрес у него каждый раз, когда появляется линия, и вы можете поговорить с ним. Но статический адрес будет проще.

Альтернативное предложение: учтите, что большинство телефонов GSM с радостью установят соединение PPP с любым старым номером POTS, чтобы установить сеанс терминала. Несколько лет назад я написал эту техническую статью о том, как получить телефон GSM с модемом, который учитывал набор команд AT (а это большинство из них) для подключения к интернет-провайдеру.

Абсолютно законно, чтобы телефон 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 к этому. Я делал это в прошлом с внешним модемом (подключенным к фактическому последовательному порту); Я предполагаю, что это должно работать и с USB.

Если на сервере есть внутренний модем, а не последовательный порт, и вы не можете заменить его, все становится сложнее. VoIP может работать - чем ближе к сырому PCM, тем лучше шансы. Фиксированные беспроводные терминалы (в основном сотовый телефон, но с портом FXS вместо динамика / микрофона / клавиатуры) могут также работать, но, вероятно, будут иметь те же проблемы, что и VoIP.

Я не уверен, что полностью понимаю ваши требования. Я наберу то, что, как я думаю, вы спрашиваете, и оттуда:

1) Есть сервер с только линией pstn, подключенной к аналоговому модему. 2) Вы хотите освободить телефонную линию (для других целей) и хотите сохранить доступ к серверу.

Если 1 и 2 верны, то я не вижу другого выбора, кроме как использовать какую-либо форму интернет-соединения, USB-флешка должна дать вам соединение, к которому вы можете подключиться через ssh, чтобы выполнить любую административную задачу, которая вам может понадобиться.

Вы также можете установить какую-то линию xDSL, которая освободит вашу линию pstn для использования в качестве обычного телефона и в то же время даст вам доступ в Интернет.

Другие вопросы по тегам