В данной инструкции описано как с нуля установить и произвести первоначальную настройку компьютерной телефонии на базе IP ATC MikoPBX с подключением к услуге «iD Phone» компании «Казахтелеком».
Несколько лет назад я уже писал аналогичное руководство: Установка и настройка Asterisk под iD Phone (iDPhone).
После этого я несколько раз обновлял нашу офисную АТС. Сначала на более свежие сборки «AsteriskNOW», а последний раз — на «FreePBX Distro». И с каждым разом меня все больше напрягал процесс настройки, т.к. для наших нужд все огромные возможности Asterisk'а весьма избыточны. Давно хотелось что-нибудь совсем не прожорливое в плане требований к железу, и чтобы настраивалось как можно быстрее. Кажется, MikoPBX — как раз такая сборка. Кому нужна легкая и быстронастраиваемая АТС под «iD Phone» — милости прошу под кат.
Скачиваем «MikoPBX» отсюда: https://github.com/telefon1c/MikoPBX/releases/. Я использовал релиз MikoPBX 2020.1.124.
Сам процесс установки хорошо описан на сайте разработчиков. Я не буду на нем останавливаться. Отмечу лишь, что конкретно в моем случае АТС установлена на виртуальную машину Hyper-V. К машине подключено два диска: один под АТС, второй — под данные АТС (записи разговоров и т.п.). Проброшено две сетевых карты: одна смотрит в Интернет через офисный роутер, вторая — в SIP-сеть Казахтелекома.
Вот так выглядит экран сразу после установки:
Видно, что интерфейс eth0 (172.20.10.X) смотрит в Интернет. Именно из этой подсети раздает адреса DHCP-сервер роутера.
eth1 получил адрес из подсети 10.X.X.X — это интерфейс, который смотрит в SIP-сеть «Казахтелекома». Именно из этой подсети раздает адреса DHCP-сервер «Казахтелекома».
Установим на eth0 статический IP-адрес. Для этого используем пункт меню (2) и следуем вопросам мастера.
Открываем веб-интерфейс управления «MikoPBX». Для этого на любом компьютере в локальной сети открываем веб-обозреватель и в адресной строке набираем адрес, который присвоили АТС.
В нашем случае:
172.20.10.3
Данные для первого входа в панель: admin/admin.
Вот так выглядит экран первого входа в веб-интерфейс АТС:
Первым делом не плохо бы избавиться от предупреждений в шапке панели. Для этого задаем пароли и включаем сетевой экран.
Подключаемся к нашей АТС через putty (здесь уже данные для входа: root/admin, или свой пароль, который можно задать в разделе веб-интерфейса «Общие настройки» — «SSH»), переходим в консоль (9) и даем команду:
route
Получаем вывод:
Вывод команды route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 172.20.10.5 0.0.0.0 UG 0 0 0 eth0
10.28.0.0 * 255.255.252.0 U 0 0 0 eth1
172.20.10.0 * 255.255.255.0 U 0 0 0 eth0
На данном этапе АТС должна уже уметь общаться с Интернетом. Но телефония на такой конфигурации сети еще не заработает. Дело в том, что для нормального функционирования телефонии необходимо, чтобы в интерфейс SIP-сети уходил не только трафик, имеющий назначением подсеть 10.28.X.Х (в моем случае), а весь трафик для подсети 10.Х.Х.Х.
Для того, чтобы добиться такого эффекта в веб-интерфейсе АТС открываем пункт «Кастомизация системных файлов» в разделе «Система». В открывшемся списке находим файл /etc/static-routes и жмем кнопку редактирования.
На открывшейся странице переставляем поле «Режим» в значение «Добавлять в конец файла», а в поле редактирования добавляем такую строку:
route add -net 10.0.0.0 netmask 255.0.0.0 dev eth1
Не забываем нажать кнопку «Сохранить»
Иногда такой строки недостаточно. В Петропавловске, например, работает вышеуказанный вариант, а вот в Нур-Султане потребовалось явно указать адрес шлюза в подсеть «Казахтелекома». Делается это таким образом:
route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.19.X.1 dev eth1
10.19.X.1 — это адрес шлюза «Казахтелекома» для моего случая. Такое решение мне не очень нравится, т.к. адрес своего шлюза «Казахтелеком» может поменять в любой момент, но как сделать лучше, я не знаю. По-идее, необходимо сначала каким-то образом получить адрес шлюза по DHCP, а потом уже создавать маршрут через этот адрес.
В дальнейшей настройки нашей IP-АТС мы будем неоднократно обращаться к имени SIP-сервера «Казахтелекома»: sip.telecom.kz. При текущей настройке нашего компьютера это имя разрешается в белый IP-адрес 92.46.61.21. Нам необходимо добиться того, чтобы это имя разрешалось в IP-адрес SIP-сети «Казахтелекома».
Сначала необходимо узнать внутренний IP-адрес сервера, который определен для вашего региона. Для этого открываем следующую страницу: http://idphone.kz/?page_id=1010. На ней есть таблица адресов Outbound Proxy при настройке услуги iD Phone через pvc 0/41. Именно в ней ищем необходимый нам адрес.
На всякий случай процитирую эту таблицу здесь:
Актау 10.0.0.44Открываем пункт «Кастомизация системных файлов» в разделе «Система». В открывшемся списке находим файл /etc/hosts и жмем кнопку редактирования. На открывшейся странице переставляем поле «Режим» в значение «Добавлять в конец файла», а в поле редактирования добавляем такую строку:
Актобе 10.0.0.36
Алматытелеком 10.0.0.12
Астанателеком 10.0.0.20
Атырау 10.0.0.28
Караганда 10.0.0.148
Кокшетау 10.0.0.140
Костанай 10.0.0.129
Кызылорда 10.0.0.60
Павлодар 10.0.0.108
Петропавловск 10.0.0.116
Семей 10.0.0.92
Шымкент 10.0.0.68
Талды-Корган 10.0.0.84
Тараз 10.0.0.76
Уральск 10.0.0.52
Усть-Каменогорск 10.0.0.100
Жезказган 10.0.0.156
10.0.0.116 sip.telecom.kz
Это для Петропавловска (мой случай). Замените адрес 10.0.0.116 на соответствующий вашему региону.
Нажимаем кнопку «Сохранить»
Перезагружаем АТС и убеждаемся, что все работает правильно. Для этого подключаемся к нашей АТС через putty и даем команду:
ping 8.8.8.8
Если пинг идет, значит компьютер имеет доступ к Интернету.
Даем команду:
ping ya.ru
Если имя разрешилось, значит DNS-работает корректно.
Даем команду:
ping 10.0.0.116
Если пинг идет, значит компьютер имеет доступ к SIP-сети «Казахтелекома». На момент написания статьи в «Казахтелекомовской» сети адрес 10.0.0.116 пинговался. Но, на самом деле отсутствие пинга не может 100% говорить о том, что у вас проблемы с настройкой. Дело в том, что «Казахтелеком» может в любой момент закрыть пинг на своих серверах.
Даем команду:
ping sip.telecom.kz
Если имя разрешается в тот адрес, что задали в файле /etc/hosts, значит настройка этого момента произведена верно. Как написано выше, пинг на sip.telecom.kz может и не идти.
Здесь надо сделать небольшое замечание. В данной АТС обслуживание протокола SIP производится драйвером PJSIP (как и в свежих версиях Asterisk'а), а этот драйвер при разрешении FQDN-имени игнорирует настройки файла hosts. Чтобы обойти это ограничение, придется приложить определенные усилия при настройке подключения к провайдеру. Т.е. наша подмена адреса сервера sip.telecom.kz в файле hosts вроде как и не нужна, но я рекомендую это делать, чтобы в будущем не ломать голову, почему система и драйвер по разному имя видят.
Мы закончили с настройкой операционной системы и теперь пришло время переходить к настройке «MikoPBX». Для начала нам необходимо выяснить наши параметры подключения к SIP-серверу «Казахтелекома». Для этого идем в личный кабинет клиента «Казахтелекома»: https://telecom.kz/account/login.
В кабинете следуем к разделу с параметрами подключения:
Скриншоты пути до параметров подключения ID Phone
Значения в полях «Линия/Порт» (без "@sip.telecom.kz") и «Имя пользователя» у меня одинаковые. У вас тоже, скорее всего, т.к. поля эти для редактирования закрыты. Договоримся в дальнейшем это значение называть <SIP-логин>. На этой же странице можно задать <SIP-пароль>.
Идем в веб-интерфейс системы. В разделе «Маршрутизация» выбираем пункт «Провайдеры телефонии». После первоначальной установки здесь есть «Демо провайдер». Его можно удалить. А далее, нажав кнопку «Подключить SIP», начинаем настраивать подключение к Казахтелекому.
В поле «Название провайдера» задаем понятное нам название транка. В поле «Хост или IP адрес» пишем
10.0.0.116
. В поле «Логин» указываем <SIP-логин>, а в поле «Пароль» — <SIP-пароль>. Разворачиваем «Расширенные настройки». В поле «Переопределить имя домена в поле From: в SIP пакетах (fromdomain)» пишем sip.telecom.kz
, а в «Дополнительные параметры» вносим такой текст:[registration]
client_uri = sip:<SIP-логин>@sip.telecom.kz:5060
Если все сделано правильно, то после нажатия кнопки «Сохранить» в правом верхнем углу появится надпись на зеленом фоне «Связь установлена».
Скриншот настройки транка
Создаем исходящую маршрутизацию (объясняем системе, что делать, когда кто-то из пользователей АТС пытается позвонить наружу). Для этого в разделе «Маршрутизация» выбираем пункт «Исходящие маршруты». Жмем на кнопку «Добавить новое правило». В поле «Название правила» указываем понятное нам наименование. В поле «Остальная часть номера состоит из указанного количества цифр» указываем
6
. Сохраняем. Таким образом все исходящие звонки на номера, состоящие из шести цифр, мы направили в ранее добавленный транк.Создаем внутренний номер. Для этого в разделе «Телефония» выбираем пункт «Сотрудники». В открывшемся списке сначала удаляем демо-сотрудников (предварительно придется удалить входящий маршрут, изменить получателя входящего маршрута по умолчанию, удалить IVR меню и очереди вызовов). Задаем «ФИО пользователя», «Внутренний номер» и «Пароль для SIP».
Создаем входящую маршрутизацию (объясняем системе, что делать, когда снаружи кто-то позвонит на наш транк). Для этого в разделе «Маршрутизация» выбираем пункт «Входящие маршруты». Здесь достаточно будет указать получателем созданного нами сотрудника в маршруте по умолчанию.
Ну вот мы и закончили настраивать нашу АТС. Пришло время проверить, как все работает. Для этого установим софт-фон и зарегистрируемся на нашей АТС за внутренним номером «127».
Качаем «MicroSIP» отсюда https://www.microsip.org/downloads.
Устанавливаем на одном из компьютеров локальной сети.
Добавляем учетную запись «MicroSIP». Окно добавления учетной записи можно вызвать по выпадающей кнопке в право верхнем углу (пункт «Add Accaunt...).
В настройках указываем:
- »SIP Server" — адрес IP-АТС в локальной сети (в нашем случае «172.20.10.3»);
- «Username» — имя абонента (любое, например, «127»);
- «Domain» — адрес IP-АТС в локальной сети (в нашем случае «172.20.10.3»);
- «Login» — внутренний номер, за которым мы хотим зарегистрироваться (в нашем случае «127»);
- «Password» — пароль внутреннего номера (его мы задали при создании сотрудника).
Настройка MicroSIP
Если мы все сделали правильно, то в статусе софт-фона появится «Online»:
Скриншот подключенного MicroSIP
А вот теперь действительно все! Пробуем позвонить с софт-фона в город, а потом с города, на наш номер «ID Phone».
P.S. Спустя несколько недель эксплуатации системы, я очень доволен результатом. Субъективно еще и качество связи улучшилось по сравнение с тем, как было на FreePBX Distro.
На данный момент у меня наблюдается только одна проблема, с которой мне пока не удается справится: спустя несколько часов отсутствия звонков (например, ночью) почему-то перестает нормально работать интерфейс eth1, который смотрит в SIP-сеть (даже ping не идет), и встают все транки.
Проблема признана разработчиками и, по все видимости, будет устранена в следующих релизах. На данный момент можно воспользоваться таким решением: qa.askozia.ru/7537/%D1%87%D0%B5%D1%80%D0%B5%D0%B7-%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5-%D0%B2%D1%80%D0%B5%D0%BC%D1%8F-%D0%B2%D1%81%D1%82%D0%B0%D0%B5%D1%82-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81?show=7564#c7564.
nApoBo3
ИМХО для малых не сложных инсталляций нет никакого смысла заниматься разворачиванием подобных решений. Сами через этот этап прошли, как итого оно того вообще не стоит.
Достаточно приличная ippbx для данных условий стоит около 20т.р.( немного больше ), у себя пришли к grandstream. Тут тебе и железо которое потребляет минимум и весь необходимы функционал с удобной веб мордой, и провижн их телефонов, и даже FXO/FXS шлюз( хотя его необходимость сейчас под большим вопросом ).