Когда мобильная связь подводит, особенно важно оставаться на связи с близкими. Почему бы тогда не организовать собственную телефонную сеть на основе VoIP?Меня зовут Дима Абакумов, и под катом расскажу, как я решал эту задачу и с какими трудностями столкнулся


Проблема

В моём случае есть два дома на одном участке. В одном живут родители, в другом — дедушка с бабушкой. Из-за близости к военному объекту мобильная связь заметно ухудшена: стабильно работает только на улице, и то далеко не всегда. Смартфоны с VoLTE ловят сеть с перебоями, а обычные кнопочные телефоны внутри домов сеть не видят совсем

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

Вариант 1. Радиосвязь

Первое, что приходит на ум — две переносные радиостанции, по одной в каждый дом

Плюсы:

  • Цена вопроса ~2000 руб (на рынке б\у можно и того дешевле)

  • Не нужны дополнительные провода

  • Простейшая настройка. Ввел одиннаковую частоту и готово

  • Радиостанция всегда под рукой. Можно хоть в карман ее положить и носить по дому

Минусы:

  • Юридическая сторона. Использование радиостанций в РФ регламентировано приказом Минкомсвязи № 184. Сдавать каждому из родственников экзамен на радиолюбителя, получать позывной и работать в эфире по всем правилам — задачка, конечно веселая ? Можно использовать, например PMR446 (в РФ разрешены каналы с 1 по 8) на мощности не более 0.5 Вт. Но во-первых, китайским рациям верить сложно, а измерить фактическую мощность я не могу. Ждать в гости представителей РКН с вопросом, что за переговоры у вас рядом с военным объектом тоже не хочется

  • Удобство использования. Один общий канал, полудуплекс: один говорит — второй слушает. Пожилым людям объяснять принципы работы рации непросто, да и пользоваться не слишком удобно

  • Безопасность. Во-первых, частота открытая и шифровать переговоры нельзя, а значит любой человек с радиостанцией будет в курсе всего, о чем идет разговор. Во-вторых, диапазон небольшой, и на нем работают и другие устройства, а значит они будут создавать помехи, которые будут открывать шумодав и радиостанция будет издавать шум (особенно здорово, если это будет ночью). Частично эта проблема решается за счет использования субтонов. Но помехи при использовании занятого канала никуда не денутся

Из-за этих минусов вариант с радиосвязью отпадает

Вариант 2. VoIP-телефоны

Изначально я задумался об использовании обычных городских телефонов, но резко вспомнил, что краем уха слышал об IP-телефонии, и точно видел ее в поликлиниках, университете Интересно, а сколько стоят такие телефоны?

Однако, недешево. Два таких телефона — 5000 руб. А еще нужны провода, коннекторы. А что там на рынке б\у?

А все довольно неплохо. С учетом всех расходников можно уложиться в 1000 руб! Решено, будем строить свою VoIP сеть

VoIP-сервер

Платные решения или решения с закрытым исходным кодом я рассматривать не хотел. Поэтому отправился на поиски сервера с открым исходным кодом. Плюсом будет, если он из коробки может работать в Docker

В доме номер 1 сетевой стек следующий: Mikrotik 5009 получает интернет через EPON, к нему подключен роутер ASUS TUF Gaming AX4200 в режиме точки доступа и роутер NETIS NC65 в режиме mesh-сети соединяющий такой же в доме номер 2 и самосборный NAS-сервер на базе OpenMediaVault

Важное уточнение, что Netis в режиме mesh-сети создает свою подсеть и отказывается работать с уже существующей, а в режиме моста сильно режет скорость соединения. Значит придется немного пободаться с NAT

Беглый поиск по форумам дает нам следующий варианты VoIP-сервера: OpenSIPS, ejabberd, 3СХ, Asterisk и FreePBX

Проверив разные варианты остановился на FreePBX. У него есть несколько готовых Docker-образов с открытым кодом, админка с настройкой Asterisk и пара полезных плагинов в комплекте. Плюс, проект живой и активно развивается, используе��ся в крупных сетях и вообще красивый

FreePBX

По инструкции с этого сайта берем образ от tiredofit/freepbx и немного дорабатываем:

  • Меняем порты с 18000 — 18100 на 18000 — 18030 (100 одновременных звонков у нас вряд ли будет)

  • Убираем NET_ADMIN (ему такие разрешения ни к чему в локальной сети)

  • Меняем точки монтирования на наши

И запускаем на OVM

Идем в Приложения — Внутренние номера и добавляем для теста пару номеров

Для проверки можно использовать клиент под Windows или под Android / IOS. Я выбрал LinPhone Вводим логин, пароль, протокол и адрес сервера, подключаем и пробуем позвонить на второе устройство с номером 101

Звоним и … Ничего. Звонок проходит, но звука нет, как и соединения. IP-адрес звонящего при этом — внутренний IP-адрес контейнера Docker

Потратив еще некоторое количество времени на дебаг вместе с tcpdump проверкой NAT находим одну маленькую, но важную деталь:

Переменная окружения переданная в контейнер не меняет порты для SIP. Выставляем руками 18000 — 18030, перезагружаем FreePBX и пробуем еще раз. Вуаля, звонок прошел, слышно громко и четко!

В процессе дальнейшей настройки узнаем, что SIP есть в двух вариациях — chan_pjsip и chan_sip. Современным является именно pjsip. Проверяем могут ли телефоны в pjsip и после положительного ответа заказываем. Я взял 4 штуки snom 320. Это простые телефоны, без видеосвязи, но по 240 руб за штуку. В комплекте нет блоков питания

Оригинальный блок питания стоит 1200 руб за штуку, но телефоны поддерживают PoE 802.3 af/at, а значит можно приобрести PoE-инжектор за 243 руб за штуку. Еще и уменьшить количество проводов, идущих до телефона. Заказываем и их

Snom 320

Забираем телефоны, подключаем и пробуем настроить. На телефонах стоит пароль администратора. Интернет предлагает сбросить через нажатие определенной последовательности клавиш, но это работает только на новых прошивках, а у нас старая

После непродолжительного поиска, узнаем, что их можно прошить, если поднять tftp-сервер и подкинуть прошивку с правильным названием

Телефоны старые, поэтому все прошивки уже в архиве, идем сюда и качаем последнюю доступную для snom 320. Правильное название прошивки находим тут, поднимаем tftp-сервер и кладем прошивку с названием snom320.bin

Телефон обновляется, и теперь его можно настроить через веб-панель. Задаем ему логин, пароль, протокол и адрес сервера. Также пропишем адрес ntp-сервера для правильного времени и сообщение на экране

После этого телефоны готовы к работе

Итог

Теперь между домами есть стабильная внутренняя связь, которая работает даже при полном отсутствии мобильной сети. Телефоны интуитивно понятные в использовании, поэтому старшее поколение разобралось за 10 минут. Стоимость решения получилась минимальной, а надёжность — на уровне проводного стационарного телефона

Комментарии (4)


  1. olku
    06.12.2025 20:28

    А DECT станции уже все? Они пришли на смену аналоговому радио когда-то.


    1. atomnijpchelovek Автор
      06.12.2025 20:28

      Честно говоря, про них я мало что знаю. Насколько я понимаю, помимо трубок нужна еще и базовая станция (а это допрасходы) + радиопланирование (в каждом доме кирпичные стены в 3 кирпича). Вероятность нарушения соединения из-за прохождения радиосигнала сильно выше чем в моем варианте. Телефоны подключены по ethernet, а роутеры стоят на окнах

      Как еще один плюс, клиенты для SIP есть для смартфонов. Их я тоже добавил, чтоб от мангала звонить на кухню :)


  1. rubikon
    06.12.2025 20:28

    Ip 2 ip и никаких серверов..


  1. JBFW
    06.12.2025 20:28

    Ну че, круть!
    Если бы не нелюбовь к голосовухам - тоже можно было бы такое собрать.