Pull to refresh
5
0
Алексей Матвеев @MotjaX

User

Send message
Хорошая статья. Единственное когда я попытался ее реализовать без PPP подключений(у обоих провайдеров статика) возникла следующая проблема:
есть маршрут 8.8.8.8 через провайдера 1.
Ситуация 1 — у провайдера отпадает шлюз. Все ок, маршрут активен и все переключается.
Ситуация 2 — физический линк между микротиком и провайдером 1 разрывается. Т.к. интерфейс не активен — маршрут тоже становится неактивен. Это приводит к переключению на резерв, потом начинает пинговаться 8.8.8.8 (маршрут то не работает), скрипт кидает на основной канал, инета нет, кидает обратно. И так постоянно.
После вариантов переписывания скриптов решил проблему очень просто — создал bridge, и в него засунул ether1 с основным провайдером. Все! Маршрут доступен через bridge, и даже в случае обрыва линка — маршрут на 8.8.8.8 все равно активен, т.к. bridge тоже активен.
Качество связи через VPN с полным шфированием на телефонах Yealink хорошее, ничего не тормозит и не прерывается. На андроид я пробовал подключаться к телефонии через стандартное приложение play.google.com/store/apps/details?id=net.openvpn.openvpn&hl=ru. Оно не поддерживает работу с OpenVPN в режиме моста. Качество было вполне нормальное. Но единственное, я подключался не используя SRTP+TLS на SIP. Нужно подобрать клиента в котором можно удобно вставить все сертификаты, но я пока не искал. По поводу встроенного клиента SIP в Android даже честно говоря не в курсе. Использовал CSipSimple.
Тут все как раз нормально. Приложение на Android не поддерживает Bridge (tap) интерфейсы. Я же сделал специально с тунельным(tun), поэтому мобильные телефоны работают с тунелем нормально. Подготовка стандартная — вытащили файлики для телефона в папку, туда же положили файл *.ovpn со стандартным конфигом наподобие:
client
dev tun
proto udp
remote XXX.XXX.XXX.XXX 1194
resolv-retry infinite
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo no
verb 3
Единственное пока не было возможности проверить файлы pkcs12. В easyrsa есть скрипт генерации ./build-key-pkcs12. Телефон точно работает с этим форматом, т.е. можете сгенерить под него 1 файл и загрузить в приложении.
По поводу подключения SIP с TLS+SRTP прокомментировать не могу т.к. не пробовал пока. И не знаю какое приложение умеет с этим работать. Подозреваю что CSIPSimple умеет.
Мне казалось что все понятно.
Цель — защита голоса от прослушивания — при подключении через интернет.
Грабли находил на каждом шагу и решил что описывать их будет намного дольше — т.к. самая большая проблема — отсутствие нормальной инструкции как готовить сертификаты для телефона и генерировать их. Поэтому я заполнил данный пробел — написав инструкцию как соединить эти технологии и подготовить к этому сервер с OpenVPN, Asterisk и сам телефон. Пути решения — пока знаю только 1 — его и описал в статье. Надеялся узнать различные пути решения в комментариях. Про телефон особо и сказать нечего. По отзывам пользователя телефон сделан очень качественно, никакого люфта, удобные кнопки, можно очень быстро набирать номер без задержек, хорошее качество передачи речи и микрофон. По поводу же его внутренних настроек лично хотелось бы выразить свое недовольство китайцам — написавшим это чудовище. Не всегда логичный веб интерфейс — к примеру кнопка перезагрузки находится в меня Upgrade. Так же в Grandstream удобнее сделана загрузка сертификатов и ключей TLS. В них просто текстовые поля в которые можно скопировать содержимое сертификата и ключа. Тут надо готовить все заранее. Очень неудобно сделана загрузка настроек OpenVPN. Вместо того чтобы прикрутить поддержку PKCS12 — они сделали неописанную (я не нашел нормального описания в мануале) процедуру подготовки архива. Так же почему то модуль openvpn-client в телефоне собран без поддержки sha256 — тоже непонятно.
Это первая фаза проекта, дальше через сервер OpenVPN планируется запускать клиентов и к другим серверам, а не только к *. ( RDP например) На самом OpenVPN разруливать доступом разных клиентов к разным сервисам — поэтому сделали отдельный. Кстати если есть мысли то подскажите как разных клиентов пускать к разным сетевым адресам? Я пока придумал только через iptables. Да и SpiritOfVox прав по поводу кубы, это тоже повлияло при принятии решения.
Через AMI чесно говоря пока не умею, было бы интересно полностью посмотреть на схему работы.
Думаю это просто вопрос религии =)) С какой стороны отлавливать линии. Хотя мне кажется что в таком случае тоже может не сработать. Представьте себе сервер на котором висит порядка 50 абонентов которые куда то звонят, с отдельного транка вы запускаете оповещение, как будете считать линии? А если транков 20 и всё это связано с кучей астерисков которые гоняют друг через друга звонки? Мне кажется лучше контролировать количество файлов в папке.
Вы не учитываете что нужно контролировать количество одновременно занятых линий. Количество call файлов в папке Outgoing находящихся одновременно равняется количеству одновременно совершаемых звонков и соответственно занятых линий. Причем если вы закинете туда больше файлов, чем у Вас есть реальных линий, то соответственно не сможете дозвониться и очень быстро пройдут 5 попыток дозвона — данный звонок пойдёт в список не дозвонившихся и можно начинать сначала.
Добавление к статье, чтобы нормально ходили факсы через Глобус нужно в /etc/asterisk/sip_general_additional.conf прописать t38pt_udptl=yes.
Могу пояснить для чего это делалось, так нужно было человеку который у заказчика занимается настройкой АТС, он прописывал в своей маршрутизации реальные номера которые продал Глобус на конкретные порты абонентов с аналоговыми телефонами. Так им удобнее вести учет и смотреть какому абоненту какой номер продали и так далее. Причем мало всего — данный человек сам хотел управлять переадресацией вызовов которую могут попросить абоненты(его, с аналоговыми линиями). А т.к. с Астериском он не работает ему так удобнее, при необходимости переадресации он со своей стороны всё настраивал и оттуда же управлял через что пойдёт переадресация к примеру на мобильный, либо его линии Е1 подключенные к АТС либо же через транк глобуса. Всё зависит от пожеланий заказчика. Я бы вообще выкинул эту АТС с удовольствием и прицепил к астериску плату для связи с линиями Е1 и шлюзы для аналоговых телефонов.
По поводу того, что при использовании данных приложений не указывается формат я с Вами полностью согласен, но когда я проверял на практике (Удалял файл который там был к примеру в формате gsm и клал туда допустим wav) он у меня не воспроизводил данный файл и сразу обрывал дальнейшие действия, поэтому я подумал что легче будет сделать так. А в кастомных диалпланах у меня нормально всё работало и естественно формат файла я не указывал. По поводу записи тоже согласен, но ситуации бывают разные, тут решили с обработкой не заморачиваться и всех всё устроило.

Information

Rating
Does not participate
Location
Симферополь, Республика Крым, Россия
Date of birth
Registered
Activity