Как стать автором
Обновить
3118.48
RUVDS.com
VDS/VPS-хостинг. Скидка 15% по коду HABR15

Как сделать виртуальную АТС на базе VPS

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров11K


Несмотря на популярность мессенджеров и телеконференций, ни один офис ещё не отказался от телефонной связи. Люди такие существа, что иногда предпочитают общаться голосом.

В каждом офисе установлена мини-АТС, которая коммутирует внутренние звонки. Телефоны сотрудников подключаются к коммуникационному шкафу или коробочке с Asterisk (как на КДПВ), а она подключена к телефонной сети общего пользования (PSTN или ТСОП). Таким образом, сотню офисных телефонов можно повесить на один внешний номер. В общем, мини-АТС — совершенно необходимая вещь.

Виртуальная или облачная АТС (hosted PBX) — это услуга для компаний, которая заменяет им обычную офисную АТС. Вместо того, чтобы покупать специализированное телекоммуникационное оборудование или выделять отдельный компьютер с Asterisk, они заказывают услугу на удалённом хостинге. И этот компьютер с Asterisk (IP-АТС) физически размещается у провайдера. Таким образом, виртуализация добралась и до АТС, всё в русле современных тенденций.

▍ Зачем это надо


Услуга виртуальной АТС позволяет компании не вкладывать никаких усилий в развёртывание и настройку офисной АТС, при этом они получают полный пакет услуг:

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

Всё это без приобретения телекоммуникационного оборудования, то есть без существенных капитальных инвестиций, что важно для малого и среднего бизнеса.

▍ Установка на VPS


В 2020 году мы публиковали цикл статей об установке и настройке виртуальной АТС:


В упомянутых статьях 2020 года для примера мы устанавливали Asterisk 16 на недорогую виртуальную машину с двухъядерным CPU и 2 ГБ оперативной памяти, без шаблона (чистая установка Ubuntu 20.04). Давайте повторим эту процедуру.

Обычно для полноценной работы АТС нужно не меньше 2 ГБ оперативной памяти, сегодня такую машину можно заказать за 899 рублей в месяц (719 рублей в месяц при оплате за год), три дня на тест сервера предоставляются бесплатно. Но мы всё-таки возьмём 4 ГБ для последней версии Ubuntu, это обойдётся чуть дороже (1143 рубля в месяц при оплате за год).



Через какое-то время сервер готов к работе, ОС на нём уже будет установлена.



Обратим внимание, что нам выделен IP-адрес 193.124.112.77. Это важно, потому что к данному IP-адресу после установки виртуальной АТС будут подключаться наши клиенты (офисные работники). На их мобильных телефонах мы поставим соответствующий софт для IP-телефонии и укажем этот IP-адрес как сервер для связи. Но это потом.

Теперь устанавливаем Asterisk:

sudo apt-get update
sudo apt-get install asterisk

Проверка статуса после установки:

sudo systemctl status asterisk



Если в статусе не отображено, что программа запущена active (running), необходимо вручную её запустить, выполнив следующую команду:

sudo systemctl start asterisk

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

sudo systemctl enable asterisk

Изменение конфигурационных файлов:

sudo nano /etc/asterisk/sip.conf



В упомянутой статье описана дальнейшая настройка Asterisk с добавлением пользователей с указанием их внутренних номеров и паролей. После перезапуска службы и проверки её работоспособности можно сказать, что настройка завершена.

Затем можно приступать к установке клиентского программного обеспечения. Клиентов для IP-телефонии очень много, а мы тестировали мобильное приложение Linphone, которое выпускается в версиях для iOS и Android.

Установка Linphone под Linux:

sudo apt-get install linphone



Конечно, можно поискать какой-нибудь более современный клиент, потому что Linphone под Linux не особо активно поддерживается.



При установке на смартфоне в настройках Linphone выбираем пункт «Использовать SIP-аккаунт» и указываем IP-адрес сервера 193.124.112.77, выделенный провайдером (см. выше):


После подключения к нашей АТС клиенты готовы общаться между собой.

Таким образом, мы установили и настроили Asterisk в самой простой и базовой конфигурации с несколькими пользователями. Но возможности виртуальной АТС гораздо шире. Они поистине безграничны.

Программное обеспечение Asterisk включает множество функций, доступных в коммерческих и проприетарных АТС: голосовую почту, конференц-связь, интерактивное голосовое меню (IVR) и автоматическое распределение вызовов (ACD). Пользователи могут создавать новые функциональные возможности путём написания скриптов диалплана (план маршрутизации звонков) на нескольких языках расширения, добавлять загружаемые модули на PHP или C, а также реализации программ Asterisk Gateway Interface (AGI) с помощью любого языка программирования, способного взаимодействовать через стандартные потоки системы (stdin и stdout) или сетевые TCP-сокеты.



Asterisk поддерживает несколько стандартных протоколов VoIP, включая протокол инициирования сеанса (SIP), протокол управления медиашлюзом (MGCP) и H.323. Софт поддерживает большинство SIP-телефонов, выступая в качестве регистратора и агента пользователя. Он служит шлюзом между IP-телефонами и ТСОП через разные интерфейсы или аналоговые карты:


Телефонная карта Sangoma A200 на 2−24 аналоговых порта для систем Asterisk, FreePBX и PBXact

Нативный для Asterisk протокол Inter-Asterisk eXchange (IAX), задокументированный в качестве стандарта RFC 5456, обеспечивает эффективное межстанционное соединение (транк) между АТС Asterisk, а также распределяет некоторую логику конфигурации. Этот протокол поддерживают многие провайдеры VoIP, потому что сами используют Asterisk или предлагают его на своём хостинге. Некоторые телефоны также поддерживают IAX.

В прошлых статьях мы обсуждали настройки безопасности для виртуальной АТС, чтобы защитить её от несанкционированного доступа. Всё-таки телефонная станция в интернете по определению опаснее, чем в офисе. Мы настроили межсетевой экран, избавились от лишних модулей, изменили конфигурацию sip.conf против атаки перебором по номерам и запрета гостевых звонков, составили план маршрутизации звонков extensions.conf и т. д.



Asterisk рекомендуется перевести на более современную мультимедийную библиотеку PjSIP вместо устаревшей chan_sip. Нужно сказать, что это требует определённой доли ручной работы, ведь автоматически конвертировать конфигурацию и план маршрутизации звонков не получится. Если по-серьёзному, то это только начало. Дальнейшее обслуживание виртуальной АТС тоже займёт некоторое количество времени. Хотя в целом всё уже работает, но нужно добавлять/удалять пользователей, менять таблицы маршрутизации и в целом присматривать за системой.

Со времени публикации нашего руководства в 2020 году ничего принципиально не изменилось, разве что вышло несколько новых версий Asterisk (последняя 21) и Ubuntu (совсем свежий релиз 24.04 LTS, апрель 2024-го).

▍ Новые версии Asterisk




За прошедшее время разработка Asterisk активно продолжалась.

Все версии Asterisk делятся на два типа: стандартные (поддержка один год плюс ещё один год выпуска патчей безопасности) и LTS (4+1).

Уже во время написания нашей прошлой статьи была доступна стандартная версия Asterisk 17, но в реальном использовании лучше ориентироваться на версии LTS (чётные), чтобы не переустанавливать систему каждый год.

С тех пор вышли Asterisk 18 LTS (20.10.2020), Asterisk 19 Standard (02.11.2021), Asterisk 20 LTS (19.10.2022) и Asterisk 21 Standard (18.10.2023), см. все версии.

Из новых функций, достойных упоминания, в Asterisk добавилось следующее (с 16-й версии):

  • Нативная поддержка системы мониторинга Prometheus (Asterisk 17).
  • Установка старших бит ToS под Linux для пользователей, не являющихся рутом, чтобы приоритизировать VoIP-трафик Asterisk абсолютно на любых маршрутизаторах, старый баг (Asterisk 18).
  • Синхронизация видео со звуком при проходе через func_jitterbuffer (Asterisk 18).
  • Модуль распознавания тона (Asterisk 19).
  • Аудиоскремблер для шифрования звука (Asterisk 19).
  • Модуль res_speech_aeap. Распознавание речи и перевод, передача входящего сигнала во внешние API вроде Deepgram или Google Speech API. В новой модели Asterisk не пытается сам обрабатывать речь, а позиционируется как мост между сигналом и облачными сервисами обработки (Asterisk 21).



Можно упомянуть, что на базе Asterisk разработан ряд коммерческих и опенсорсных решений, а также программно-аппаратных комплексов. Отдельно стоит выделить FreePBX, графический веб-интерфейс для Asterisk (на скриншоте вверху). Он распространяется как отдельный дистрибутив FreePBX Distro, даже с коммерческими модулями.

Telegram-канал со скидками, розыгрышами призов и новостями IT 💻
Теги:
Хабы:
Всего голосов 23: ↑21 и ↓2+30
Комментарии45

Публикации

Информация

Сайт
ruvds.com
Дата регистрации
Дата основания
Численность
11–30 человек
Местоположение
Россия
Представитель
ruvds