Предисловие

Готовим к выходу очередную версию бесплатной АТС с открытым исходным кодом MikoPBX.

В этой версии была проделана большая работа, повысили безопасность, обновили ключевые пакеты, переработали web интерфейс.

Безопасность

  • После развертывания новой АТС, устанавливается сложный пароль для SSH (md5 сумма из уникальной строки)
  • Для свежей установки будет запрещено подключение к SSH по паролю, подключиться будет возможно только по ssh-rsa ключу
  • При входе в web интерфейс система будет уведомлять о наличии простых паролей к учетным записям SIP
  • При первом входе в web интерфейс система потребует изменить простой пароль к web / ssh на более сложный
  • При изменении пароля SSH администратору АТС будет отправлено уведомление на email

Yandex облако

MikoPBX теперь доступна в marketplace! Повышена совместимость с Yandex Cloud.

Для примера, на конференции мы продемонстрировали развертывание MikoPBX в Yandex. Установка и настройка АТС на трех сотрудников заняла менее 7ми минут.

Инструкции по установке MikoPBX можно найти в нашей wiki.

Docker

Были исправлены проблемы с работой доп. модулей MikoPBX, развернутой в контейнере. Теперь система работает стабильнее. Контейнер можно запускать и останавливать командами:

docker start mikopbx docker stop mikopbx

Инструкции по запуску docker доступны на wiki.

Звонки через Telegram

Теперь это стало возможно. Мы используем решение с отрытым исходным кодом tg2sip и упаковали его в дополнительный модуль MikoPBX.

Модуль позволит:

  • Принимать вызовы от клиентов из Telegram
  • Совершать вызовы клиентам на их Telegram аккаунты

Компоненты:

  • tg2sip - это шлюз, позволяющий соединять Telegram и SIP АТС.
  • Модуль для MikoPBX - это удобный web интерфейс для настройки шлюза tg2sip.

Скорее всего решение будет платным, об условиях поставки уточняйте по адресу help@miko.ru.

О функционале модуля можно почитать в документации.

Интеграция с amoCRM

Мы разработали дополнительный модуль для этой CRM системы.

Основные функции:

  • Перехват на ответственного
  • Звонок в 1 клик из карточки клиента / контакта / сделки
  • Переадресация вызова
  • Загрузка записей разговоров в amoCRM, запись прикрепляется к карточке клиента
  • Загрузка пропущенных звонков в "не разобранное"

Описание модуля доступно по ссылке.

Сертификаты Lets Encrypt

Новый, бесплатный модуль, позволяет упростить процедуру получения валидного сертификата SSL.

Актуально когда АТС доступна на белом IP, когда в качестве внешнего имени сервера прописано доменное имя.

Полученный сертификат будет использоваться для:

  • Работы web интерфейса по https
  • Для подключения webRTC софтфонов
  • Для работы SIP TLS транспорта (защищенные звонки)

Документация доступна на wiki.

Защищенные звонки (TLS транспорт)

По умолчанию телефонные звонки работают на основе открытого протокола SIP / RTP и передаются в не защищенном виде.

Если злоумышленник получит доступ к вашему вышестоящему маршрутизатору, то он сможет прослушивать ваши телефонные разговоры.

При использовании TLS транспорта все звонки будут шифроваться с помощью SSL сертификата, что повысит безопасность соединения.

В настройках SIP добавили возможность указать TLS порт: Системные натсройки - TLS порт В настройках учетной записи сотрудника появилась возможность указать транспортный протокол: Сотрудник - транспортный протокол

Пример подключения софтфона Blink доступен по ссылке

Маршрутизация

При настройке маршрутизации появилась возможность выбрать новые служебные "номера":

  • Завершить вызов
  • Проиграть сигнал "занято"
  • Направить на сотрудника (сопоставить по DID)

Последний пункт наиболее интересный, может быть выбран только во входящих маршрутах. Актуален при объединении нескольких АТС.

Когда вызов поступает от внешнего провайдера, анализируется набранный номер телефона, на который позвонил "клиент", если такой номер есть среди внутренних номеров MikoPBX вызов будет направлен на него.

Карточка провайдера

Удалены опции:

  • "Отключить регистрацию"
  • "Доверять этому провайдеру и принимать от него вызовы без аутентификации"

Их использование было не понятным. Вместо них теперь будет одна опция - "Тип регистрации":

Исходящая регистрация Тип регистрации - исходящая Этот вариант используется при подключении большинства провайдеров.

Необходимость регистрации возникает в случае, когда провайдер не может знать, с какого IP адреса будет подключаться клиент, к примеру, когда АТС расположена за NAT, сервер провайдера обычно на публичном IP адресе.

Входящая регистрация: Тип регистрации - входящая Этот вариант актуален для работы некоторых FXO / GSM шлюзов. Когда внешнее устройство должно подключиться к вашей АТС по логину и паролю.

Также этот вариант актуален, когда удаленное устройство находится за NAT и MikoPBX не может знать его IP адрес.

Аутентификаци по IP адресу, без пароля Аутентификаци по IP адресу

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

АТС и провайдер в данном случае должны находиться в одной и той же сети.

Кастомизация

Расширили возможности кастомизации АТС баз разработки доп. модулей.

Теперь можно описать дополнительный контекст all-outgoing-custom. Все исходящие вызовы обязательно пройдут через этот контекст.

Если в нем установить переменную NEED_RETURN=1, то после выхода из этого контекста вызов завершится. Таким образом можно "отключить" выполнения стандартных исходящих маршрутов.

См. новые инструкции "Выбор провайдера при переадресации на мобильный"

Обновлены пакеты

  • OpenSSL - были проблемы с проверкой валидности сертификатов SSL. Теперь их устранили
  • dropbear - обновили сервер для подключения по SSH до актуальной версии, обновили также пакет openssh
  • Asterisk - обновили до версии 16.26.1
  • Nginx - обновили до версии 1.19.3

Обновление АТС через IMG

Производится при онлайн обновлении через web интерфейс.

Перед обновлением создается резервная копия системного диска. Если в процессе обновления происходит сбой, то выполняется восстановление.

Этот механизм может работать только в том случае, если диск для хранения данных и системный диск - разные устройства.

Это не панацея, всегда перед обновлением выполняйте полное резервное копирование АТС!

Напоследок

Каждый новый релиз мы стараемся сделать более стабильным и функциональным. Мы всегда открыты для предложений

  • Задать вопрос / предложить свою идею вы можете на сайте
  • Задать технический вопрос можно на форуме
  • Исходный код проекта открыт и доступен на github