Несмотря на популярность мессенджеров и телеконференций, ни один офис ещё не отказался от телефонной связи. Люди такие существа, что иногда предпочитают общаться голосом.
В каждом офисе установлена мини-АТС, которая коммутирует внутренние звонки. Телефоны сотрудников подключаются к коммуникационному шкафу или коробочке с Asterisk (как на КДПВ), а она подключена к телефонной сети общего пользования (PSTN или ТСОП). Таким образом, сотню офисных телефонов можно повесить на один внешний номер. В общем, мини-АТС — совершенно необходимая вещь.
Виртуальная или облачная АТС (hosted PBX) — это услуга для компаний, которая заменяет им обычную офисную АТС. Вместо того, чтобы покупать специализированное телекоммуникационное оборудование или выделять отдельный компьютер с Asterisk, они заказывают услугу на удалённом хостинге. И этот компьютер с Asterisk (IP-АТС) физически размещается у провайдера. Таким образом, виртуализация добралась и до АТС, всё в русле современных тенденций.
▍ Зачем это надо
Услуга виртуальной АТС позволяет компании не вкладывать никаких усилий в развёртывание и настройку офисной АТС, при этом они получают полный пакет услуг:
- многоканальный номер;
- распределение поступающих звонков;
- запись разговоров;
- внутренняя связь без выхода на городской номер;
- конференц-связь;
- селекторная связь;
- голосовые приветствия и голосовая почта;
- перевод вызова;
- автоматическое распознавание факсимильных сообщений;
- и многое другое.
Всё это без приобретения телекоммуникационного оборудования, то есть без существенных капитальных инвестиций, что важно для малого и среднего бизнеса.
▍ Установка на VPS
В 2020 году мы публиковали цикл статей об установке и настройке виртуальной АТС:
-
«Виртуальная АТС. Часть 1: Простая установка Asterisk на Ubuntu 20.04»
-
«Виртуальная АТС. Часть 2: Решаем проблемы безопасности с Asterisk и настраиваем звонки»
- «Виртуальная АТС. Часть 3: Переводим Asterisk на PjSIP без лишних телодвижений»
В упомянутых статьях 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
В упомянутой статье описана дальнейшая настройка Asterix с добавлением пользователей с указанием их внутренних номеров и паролей. После перезапуска службы и проверки её работоспособности можно сказать, что настройка завершена.
Затем можно приступать к установке клиентского программного обеспечения. Клиентов для IP-телефонии очень много, а мы тестировали мобильное приложение Linphone, которое выпускается в версиях для iOS и Android.
Установка Linphone под Linux:
sudo apt-get install linphone
Конечно, можно поискать какой-нибудь более современный клиент, потому что Linphone под Linux не особо активно поддерживается.
При установке на смартфоне в настройках Linphone выбираем пункт «Использовать SIP-аккаунт» и указываем IP-адрес сервера 193.124.112.77, выделенный провайдером (см. выше):
После подключения к нашей АТС клиенты готовы общаться между собой.
Таким образом, мы установили и настроили Asterix в самой простой и базовой конфигурации с несколькими пользователями. Но возможности виртуальной АТС гораздо шире. Они поистине безграничны.
Программное обеспечение 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
Нативный для Asterix протокол Inter-Asterisk eXchange (IAX), задокументированный в качестве стандарта RFC 5456, обеспечивает эффективное межстанционное соединение (транк) между АТС Asterisk, а также распределяет некоторую логику конфигурации. Этот протокол поддерживают многие провайдеры VoIP, потому что сами используют Asterisk или предлагают его на своём хостинге. Некоторые телефоны также поддерживают IAX.
В прошлых статьях мы обсуждали настройки безопасности для виртуальной АТС, чтобы защитить её от несанкционированного доступа. Всё-таки телефонная станция в интернете по определению опаснее, чем в офисе. Мы настроили межсетевой экран, избавились от лишних модулей, изменили конфигурацию
sip.conf
против атаки перебором по номерам и запрета гостевых звонков, составили план маршрутизации звонков extensions.conf
и т. д. Asterix рекомендуется перевести на более современную мультимедийную библиотеку PjSIP вместо устаревшей
chan_sip
. Нужно сказать, что это требует определённой доли ручной работы, ведь автоматически конвертировать конфигурацию и план маршрутизации звонков не получится. Если по-серьёзному, то это только начало. Дальнейшее обслуживание виртуальной АТС тоже займёт некоторое количество времени. Хотя в целом всё уже работает, но нужно добавлять/удалять пользователей, менять таблицы маршрутизации и в целом присматривать за системой.Со времени публикации нашего руководства в 2020 году ничего принципиально не изменилось, разве что вышло несколько новых версий Asterisk (последняя 21) и Ubuntu (совсем свежий релиз 24.04 LTS, апрель 2024-го).
▍ Новые версии Asterisk
За прошедшее время разработка Asterix активно продолжалась.
Все версии 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. В новой модели Asterix не пытается сам обрабатывать речь, а позиционируется как мост между сигналом и облачными сервисами обработки (Asterisk 21).
Можно упомянуть, что на базе Asterisk разработан ряд коммерческих и опенсорсных решений, а также программно-аппаратных комплексов. Отдельно стоит выделить FreePBX, графический веб-интерфейс для Asterix (на скриншоте вверху). Он распространяется как отдельный дистрибутив FreePBX Distro, даже с коммерческими модулями.
Telegram-канал со скидками, розыгрышами призов и новостями IT ?
Комментарии (20)
Skipy
17.05.2024 09:40+1Ну да. Мини-АТС. Стоят. У меня на столе даже телефон стоит. И на прошлом рабочем месте стоял. Хотя там мне два с половиной года не могли номер присвоить. А тут - за год мне никто ни разу не позвонил. Я даже собственного номера не знаю. При том, что созвонов у меня - 5-10 в день в среднем. Webinar, подключение любого количества участников, запись разговора, видео, демонстрация экрана. В мессенджере "давай созвонимся", в ответ ссылка на подключение секунд через 15. Радио-гарнитура, никаких телефонных аппаратов.
sunsexsurf
17.05.2024 09:40Кстати, МТС привольную фичу сделал: после разговора еще и суммаризация приходит.
AlexNixon
17.05.2024 09:40+1А я вот просто люблю эти офисные циски по какой-то необъяснимой причине. Все хочу себе такую на стол поставить, ибо они и на авито по бросовым ценам валяются. Но так, чтоб работала, ессно, а все руки не доходят.
Vilos
17.05.2024 09:40Циски к сожалению не умеют в чистом виде sip...только некоторые модели (как правило древние) и то нужно наливать в них sip прошивку; но и это еще не все, отдельного упоминания заслуживает их конфигурация. По какой-то бредовой логике производителя в них нельзя вот так вот просто взять и залить конфиг, они берут его из tftp сервера каждый раз когда стартуют... А сам конфиг - просто фееричная садо-мазо. У меня дома по вышеупомянутым причинам лежат мертвым грузом 2 циско телефона и к сожалению перспектив их использования не видеться.
homeles
17.05.2024 09:40+6Почему-то все адепты облачных решений забывают о том, что "отвалился" канал в инет - и все - нету в офисе телефонии. И фиг с внешней, даже внутрянки не будет. И одно дело офис малого бизнеса - можно и ногами до собеседника добежать, а если это территориально распределенный объект ?! Так что я за свою АТС-ку на объекте, и то - если наружу идем через SIP-транк отдельным VLANом, но через один физический порт в 100Мбит вместе с офисным инетом - то вероятность положит ь телефонию тупым(без ограничений скорости) торрентом очень велика
fpga500
17.05.2024 09:40Ведь еще есть такой момент как закрытая информация, которая не должна выходить за пределы предприятия. При облачном решении происходит передача через Интернет - есть риск утечки.
ciuafm
17.05.2024 09:40+1А можно в следующий раз добавить инструкцию как к астериску подключить 3ж модем чтобы использовать его как внешний канал (звонки/смс, вход/выход). Понимаю что к ВПС не подвязывается, но мне кажется это наиболее реалистичный сценарий использования не считая заграничных входящих номеров.
Gimmemoar
17.05.2024 09:40+1Обеспечить выход в интернет через модем, подключаться к операторам SIP-транками. Или вам принципиально нужен GSM? Для этого использовались шлюзы https://w.wiki/A74V
homeles
17.05.2024 09:40:) А может Вам еще "ключ от квартиры, где деньги лежат" ? :) В смысле инструкцию, как факсы через Астериск пустить ? :) :) :) Форумов овермного - черпайте знания оттуда, если еще и поймете что, как и зачем - вообще великолепно.
jackcrane
17.05.2024 09:40Asterisk с нуля немодно. люди сразу ставят сборку FreePBX.
homeles
17.05.2024 09:40Точно так. С одной стороны - для 90% задач хватает за глаза и главное - быстро. С другой - оставшиеся 10% требуют очень много времени, т.к. все таки приходится лезть в "потроха" самого Астериска, а народу, у кого спросить, становится все меньше и меньше
VenbergV
17.05.2024 09:40FreePBX ставить уже не модно. Ибо в 90% случаях есть готовая коробка c IP-PBX на борту. Или готовые облачные АТС, от операторов связи.
FreePBX отстает на два-три релиза от Asterisk.
При сложных телефонных планах и паре сотен телефонов, каждое обновление системы с FreePBX превращается в новую установку, с увлекательным и кропотливым "мышконажимательством" в графическом интерфейсе.
Проще куски кода номерного плана из старого asterisk переносить в новую установку. И переносимый код, хорошо вписывается в методологию IaC.
nitro80
17.05.2024 09:40+1Статья не дала ничего нового по сравнению со старой и уже куча плюсов.
Те же проблемы, что озвучивали в комментариях в старой статье - и этот "мануал" их не исправил.
Zara6502
а есть ли готовые решения интеркома, например на 4-8 абонентов? Например - зал, кухня, спальня 1, спальня 2, нажал вызов из любой комнаты например на спальня 1 и говоришь.
maxsaf
В обычных беспроводных DECT телефонах для дома уже есть функция INTERCOM. Довольно удобно, кстати.
Zara6502
если вы про вариант где нужно пользоваться трубкой, то это не интерком и это неудобно. А вариант с громкой связью и списком внутренних абонентов я не встречал.
Zara6502
поскольку тут собрались туповатые любители накидывать минусы, прокомментирую почему DECT телефон это глупая затея:
Вам нужно содержать трубки
Вам нужно разговаривать через трубки
Вы не можете ничего и никому сказать пока не снимут трубку
Это ни в каком виде НЕ ИНТЕРКОМ. ПОжалуйста, если вы не понимаете что такое интерком - не пишите сюда чушь.
Из ближайшего что доступно - это оки-токи из например 4 станций, из минусов опять же содержание трубок и прослушивание разговоров посторонними. Ну и это всё еще ТРУБКИ.
Javian
В Андроид телефоне может уже встроен SIP клиент. Звоните сразу на телефон или используйте ненужный планшет как интерком.
Zara6502
какой телефон? какой планшет? вы в своем уме?