Установка IP-АТС Asterisk
Данная статья является руководством по установке коммуникационной платформы Asterisk от компании Digium на интернет-центр Netcraze. Asterisk позволяет расширить возможности интернет-центра функциями телефонной станции на основе протокола IP (IP-АТС). Такая телефонная станция может обслуживать десятки внутренних номеров, обеспечивая маршрутизацию звонков через несколько внешних линий, запись разговоров, интерактивные голосовые меню, конференции и другие функции. Ее можно использовать для организации телефонной сети в небольшом офисе. Подключение к Asterisk телефонной станции Keenetic с модулями телефонии Keenetic Plus DECT и Keenetic Linear установленной на том же устройстве выполняется автоматически в процессе установки.
Чтобы максимально упростить установку и конфигурирование Asterisk воспользуйтесь инсталлятором, который можно скачать по ссылке в конце данной статьи. Он позволяет автоматически установить Asterisk и настроить следующие функции:
Внутренние номера 1000..1009, 200..2009 для подключения IP-телефонов, смартфонов, софтфонов, VoIP-шлюзов и т.п. (далее IP-телефоны) к Asterisk по протоколу SIP. Пользователи IP-телефонов смогут звонить и принимать звонки через внешние линии, звонить друг другу по внутренним номерам через Asterisk и создавать конференции. DECT-трубки и телефоны телефонной станции Keenetic установленной на том же интернет-центре подключаются к Asterisk автоматически в процессе установки;
Внешние линии для подключения к операторам IP-телефонии (далее SIP-транки) могут быть настроены автоматически, путем копирования конфигурации линий телефонной станции Keenetic;
Звонки через сеть LTE оператора мобильной связи с телефонов или DECT-трубок подключенных к интернет-центру с помощью адаптеров телефонии Keenetic Plus DECT и Keenetic Linear (далее VoLTE или звонки VoLTE). Для подключения к сети LTE используется USB-модем 4G. Настройка VoLTE выполняется автоматически, если USB-модем с функциями VoLTE обнаружен в процессе установки Asterisk;
Функция перевода вызова (Call Transfer). Перевод вызова на другой внутренний номер. Работает на любом IP-телефоне подключенном к Asterisk;
Голосовое меню для входящих звонков. Абонент позвонивший по внешней линии слышит приглашение набрать внутренний номер. Он набирает внутренний номер и Asterisk соединяет его с нужным пользователем;
Конференции для трех и более участников. Каждый пользователь подключившийся к конференции сможет разговаривать со всеми остальными пользователями в конференции;
Голосовая почта. Абоненты, которые звонят вам, когда вы не можете ответить, могут оставить для вас голосовое сообщение. Для хранения сообщений требуется внешний USB-накопитель. Для настройки голосовой почты нужно запустить специальный скрипт после установки Asterisk, см. далее в этой статье;
Запись разговоров. Все разговоры могут быть записаны. Для хранения записей разговоров требуется внешний USB-накопитель. Для настройки записи разговоров нужно запустить специальный скрипт после установки Asterisk, см. далее в этой статье.
Данный инсталлятор предназначен для установки Asterisk на встроенное хранилище роутера размером не менее 55 МБ. Все необходимые программные компоненты Asterisk загружаются из репозитория в процессе установки.
Для установки Asterisk потребуется следующее:
1. Интернет-центр Netcraze со встроенным хранилищем данных. Подходящие модели перечислены ниже.
Архитектура MIPSel: Giga (KN-1010/1011), Ultra (KN-1810), Viva (KN-1910/1912/1913), Hero 4G (KN-2310/KN-2311), Giant (KN-2610), Skipper 4G (KN-2910), Hopper (KN-3810), Viva (NC-1913)
Архитектура MIPS: Giga SE (KN-2410), Ultra SE (KN-2510), DSL (KN-2010), Launcher DSL (KN-2012), Duo (KN-2110), Skipper DSL (KN-2112), Hopper DSL (KN-3610)
Архитектура AArch64: Ultra (KN-1811), Ultra (NC-1812), Giga (KN-1012), Giga (NC-1012), Hopper (KN-3811), Hopper (NC-3811), Hopper SE (KN-3812), Hopper SE (NC-3812), Hopper 4G+ (NC-2312), Hero 5G (NC-4110), Hopper DSL (NC-3611)
2. Подключение к интернету для загрузки программных компонентов из репозитория.
Помимо вышеперечисленного, для звонков VoLTE потребуется:
3. 4G-модем Quectel с поддержкой USB Audio, совместимый с канальным драйвером asterisk-chan-quectel. Подробную информацию о драйвере можно найти здесь.
Подсказка
Данная сборка тестировалась только с модемом Quectel EC25-E.
4. SIM-карта для телефонных звонков в сети LTE оператора мобильной связи.
5. Адаптер Mini PCI-E на USB cо слотом для SIM-карты. Данный адаптер требуется для подключения модема 4G с интерфейсом Mini PCI-E к порту USB интернет-центра.
6. Внешние антенны для модема. Внешние антенны требуется подключить к модему, если модем не имеет встроенных антенн.
7. Адаптер телефонии Keenetic Plus DECT или Keenetic Linear с подключенными DECT-трубками или телефонами соответственно.
Операционная система NDMS версии 4.0.4 или более поздней версии должна быть установлена на интернет-центр со следующими компонентами:
1. Сервер SSH;
2. Поддержка открытых пакетов;
a. Модули ядра для поддержки файловых систем;
b. Модули ядра для поддержки USB-аудио (для VoLTE);
3. Интерфейс QMI для 5G/4G/3G USB-модемов (для VoLTE);
4. Телефонная станция Keenetic (для VoLTE и автоматической настройки SIP-транков).
Подготовка к установке Asterisk
Если требуется настроить звонки VoLTE, то перед началом установки Asterisk выполните следующие действия:
1. Подключите USB-модем и адаптер телефонии к интернет-центру. Выполните команду show usb и убедитесь в том, что оба устройства появились в системе, как на скриншоте ниже;

Подсказка
USB-модем следует подключить к порту USB 3.0, адаптер телефонии — к порту USB 2.0.
2. В случае использования адаптера телефонии Keenetic Plus DECT зарегистрируйте хотя бы одну DECT-трубку;
3. Убедитесь в том, что телефонная станция Keenetic включена и DECT-трубки или телефоны отображаются в системе (см. на странице веб-конфигуратора Телефонная станция);

4. Убедитесь в том, что ваш интернет-центр подключен к интернету.

Подсказка
Для установки подойдет любое подключение, включая подключение через сотовую сеть с USB-модемом 4G.
Если требуется автоматически настроить SIP-транки для подключения Asterisk к операторам IP-телефонии, то перед началом установки в телефонной станции Keenetic нужно создать специальные телефонные линии для подключения к этим операторам и убедиться в том, что SIP-регистрация выполняется успешно и звонки работают. Имя каждой из таких линий должно содержать префикс, как на скриншоте ниже.

Префикс состоит из цифры от 0 до 9 и символа *. В процессе установки Asterisk конфигурация каждой из линий с таким именем используется для настройки SIP-транка, а префикс используется при создании правил маршрутизации звонков через этот SIP-транк.
Установка Asterisk
1. На странице веб-конфигуратора Управление > Приложения в разделе Диски и принтеры выберите Встроенное хранилище и создайте в нем новую папку с названием install;

2. В зависимости от архитектуры интернет-центра загрузите файл инсталлятора Asterisk mipsel-ast-installer.tar.gz, aarch64-ast-installer.tar.gz или mips-ast-installer.tar.gz в папку install;
Примечание
Инсталлятор Asterisk для AArch64: aarch64-ast-installer-20260407.tar.gz

3. На странице веб-конфигуратора Управление > OPKG в разделе Основные настройки выберите накопитель Встроенное хранилище. Нажмите кнопку Сохранить, чтобы применить настройки и запустить установку Asterisk.

Установка и настройка Asterisk может продолжаться около четырех минут. Ход выполнения можно наблюдать в системном журнале интернет-центра. Для этого на странице веб-конфигуратора Управление > Диагностика нажмите Показать журнал.

Сообщение Asterisk installed! в системном журнале информируют о завершении установки Asterisk.

По завершении установки будет выполнена автоматическая настройка:
Создана телефонная линия
mobileдля подключения встроенной телефонной станции к Asterisk;Все DECT-трубки или телефонные порты телефонной станции Keenetic привязаны к телефонной линии
mobileдля звонков VoLTE;Выполнена настройка Asterisk для маршрутизации звонков VoLTE через линию
mobile;Созданы SIP-транки Asterisk для подключения к операторам IP-телефонии в соответствии с конфигурацией специальных телефонных линий встроенной телефонной станции Keenetic;
Подсказка
Инсталлятор выключает телефонные линии, конфигурация которых использовалась для создания SIP-транков.
Для каждой DECT-трубки или телефона телефонной станции Keenetic создана отдельная телефонная линия с правилами набора для звонков через SIP-транки Asterisk, внутренних звонков, голосовой почты, тестовых звонков и конференций. Подробнее о голосовой почте, тестовых звонках и конференциях см. далее в этой статье.
На скриншотах ниже представлен пример автоматической настройки телефонной станции Keenetic и Asterisk.
Телефонная станция Keenetic:


Asterisk:
Проверить текущий статус Asterisk можно с помощью команд pjsip show contacts и quectel show device state quectel0. Команды выполняются в консоли Asterisk. О том, как подключить консоль Asterisk, см. далее в этой статье.


Подключение IP-телефонов
Внутренние номера 1000..1009 и 2000..2009 сконфигурированные в Asterisk предназначены для подключения IP-телефонов. При настройке подключения внутреннего номера на IP-телефоне используйте следующие параметры:
SIP registrar/proxy/domain: IP-адрес интернет-центра;
SIP User ID: один из номеров 1000..1009 и 2000..2009;
SIP Authentication ID: user1000..user1009 и user2000..user2009;
Password: ast18-opkg-mipsel;
Audio codecs: G.711a, G.711u.
Подсказка
При автоматической настройке внутренние номера из диапазона 1000..1006 используются для подключения DECT-трубок или телефонов подключенных к телефонной станции Keenetic. Не используйте эти номера для подключения IP-телефонов.
Пароль указанный выше сконфигурирован автоматически для всех внутренних номеров. Его следует сменить в конфигурационном файле /opt/etc/asterisk/pjsip.conf.
Звонки VoLTE
Для исходящего звонка VoLTE наберите номер абонента на DECT-трубке или телефоне подключенном к телефонному адаптеру и нажмите кнопку вызова. При наборе номера следуйте правилам набора номеров действующим у вашего оператора мобильной связи.
При входящем звонке VoLTE на номер SIM-карты установленной в USB-модеме все DECT-трубки или телефоны начнут звонить, на их дисплеях будет отображаться номер вызывающего абонента и название линии mobile.
Подсказка
На DECT-трубках без поддержки CAT-iq 2.0 отображается только номер вызывающего абонента, а название линии не отображается.
Звонки через SIP-транки
Для исходящего звонка через автоматически сконфигурированный SIP-транк наберите номер абонента с соответствующим префиксом. В примере выше для звонка на номер 1234567 через Sky нужно набрать 1*1234567. При наборе номера следуйте правилам набора номеров действующим у вашего оператора IP-телефонии.
При входящем вызове через SIP-транк вызывающий абонент слышит приглашение набрать внутренний номер. При этом он может набрать один из внутренних номеров 1000..1009, 2000..2009 и позвонить на другой IP-телефон привязанный к данному номеру. В примере выше телефон phone 2 подключенный к адаптеру Keenetic Linear привязан к линии line1002. Чтобы позвонить на этот телефон нужно набрать номер 1002.
Тестовые звонки
В целях тестирования взаимодействия DECT-трубок/телефонов, телефонной станции Keenetic и Asterisk в данной сборке сконфигурированы следующие функции:
Эхотест. Позвоните по номеру 800, прослушайте приглашение, продиктуйте сообщение, нажмите
#, а затем прослушайте продиктованное вами сообщение, чтобы проверить обмен аудиоданными между Asterisk и вашим IP-телефоном;Обратный вызов. Позволяет проверить входящие вызовы от Asterisk и отображение Caller ID. Позвоните по номеру 802, прослушайте сообщение, дождитесь завершения соединения и положите трубку. Через 10 секунд поступит входящий вызов. На дисплее IP-телефона отображается имя
CallBackи номер1234567890. После ответа на вызов играет музыка;Внутренний номер 9999. При звонке по данному номеру звучит музыка.
Перевод вызова
Во время разговора нужно набрать ## (Blind Transfer) или ** (Attended Transfer), затем набрать номер абонента, которому требуется перевести вызов.
Конференции для трех и более участников
Для присоединения к конференции нужно позвонить по номеру 001. Каждый пользователь присоединившийся к конференции может разговаривать со всеми остальными пользователями в конференции. Когда пользователь присоединяется к конференции или выходит из нее, все остальные пользователи в конференции слышат соответствующие оповещения. Первый пользователь присоединившийся к конференции слышит специальное оповещение и музыку до тех пор, пока к конференции не подключатся другие участники.
Дополнительные функции
После установки Entware с помощью специального скрипта можно автоматически настроить и активировать следующие функции:
голосовая почта;
запись разговоров;
транспорт TLS.
Разговоры записываются при внешних и внутренних звонках, а также при конференциях. Аудиозаписи разговоров в формате PCM 8000Hz mono 128kbps сохраняются на USB-накопителе в папке /asterisk/records.
Имена файлов аудиозаписей имеют следующий формат:
<caller>-<callee>_<YYMMDD>-<HHMM>.wav
где:
caller — номер вызывающего абонента;
callee — номер вызываемого абонента;
YYMMDD — год, месяц и число, когда состоялся звонок;
HHMM — время (часы, минуты), когда состоялся звонок.
При настройке записи разговоров можно активировать автоматическое перекодирование аудиозаписей в mp3. Это позволит уменьшить размер аудиозаписей примерно в 16 раз.
Голосовая почта работает следующим образом: если при входящем вызове внутренний номер не отвечает в течение минуты, вызывающая сторона слышит приглашение оставить сообщение для данного пользователя. Доступ к сообщениям по номеру 9000. Для авторизации требуется ввести соответствующий внутренний номер 100x в качестве номера абонента и пароля. Пароли голосовой почты можно изменить в конфигурационном файле \opt\etc\asterisk\voicemail.conf.
Записанные сообщения хранятся на USB-накопителе в папке /asterisk/voicemail/.
SIP-транспорт TLS позволяет использовать аутентификацию SIP-сервера с сертификатами и шифрование сообщений SIP. Гарантирует подключение к подлинному SIP-серверу и препятствует перехвату информации о внешних вызовах злоумышленниками.
Для настройки описанных выше дополнительных функций выполните команду configure-features в консоли Linux для запуска скрипта. Затем следуйте инструкциям отображаемым на экране. О том, как подключить консоль Linux, см. в конце данной статьи.
Сохранение и восстановление Asterisk
Текущую инсталляцию Asterisk можно сохранить в файл на USB-накопителе, чтобы затем, в случае необходимости, быстро восстановить из файла. Для этого в консоли Linux выполните команду backup и следуйте инструкциям отображаемым на экране. О том, как подключить консоль Linux, см. в конце данной статьи.
Для восстановления ранее сохраненной инсталляции Asterisk из файла:
1. Подключите USB-накопитель с разделом ext4 к интернет-центру;
2. Создайте папку /install в разделе ext4 на USB-накопителе и скопируйте файл с вашей инсталляцией Asterisk в эту папку;
3. Скопируйте тот же файл в корневой каталог раздела ext4 на USB-накопителе;
4. На странице веб-конфигуратора Управление > OPKG в разделе Основные настройки выберите раздел ext4 на USB-накопителе и нажмите кнопку Сохранить, чтобы применить настройки и запустить установку Asterisk;
5. По окончании установки ваша инсталляция Asterisk запущена на USB-накопителе. Чтобы развернуть ее на внутреннем хранилище роутера выполните команду restore в консоли Linux для запуска скрипта. Затем следуйте инструкциям отображаемым на экране. О том, как подключить консоль Linux, см. ниже;
6. После завершения выполнения скрипта, на странице веб-конфигуратора Управление > OPKG в разделе Основные настройки выберите Встроенное хранилище и нажмите кнопку Сохранить, чтобы применить настройки и запустить вашу инсталляцию Asterisk на встроенном хранилище.
Консоль Linux
Чтобы подключить консоль Linux подключитесь к интернет-центру по протоколу SSH. Для этого используйте бесплатный программный SSH-клиент PuTTY. При настройке соединения используйте следующие данные:
IP-адрес:
192.168.1.1(по умолчанию в домашнем сегментеHome);тип подключения: SSH;
порт:
22. Если компонент Сервер SSH и/или SFTP-сервер установлен на вашем интернет-центре, то укажите порт222.
При первом подключении подтвердите добавление ключа безопасности в кэш программы PuTTY для продолжения установки соединения. Для авторизации используйте имя пользователя: root и пароль: keenetic.

После успешного входа в систему рекомендуем сменить пароль командой passwd.
Консоль Asterisk
Для подключения консоли Asterisk используйте команду asterisk -rvvvv в консоли Linux.

Ниже описаны несколько полезных консольных команд Asterisk:
dialplan reload — перечитать extensions.conf;
pjsip show registrations — список зарегистрированных SIP-пиров;
pjsip show contacts — показать список контактов;
pjsip show transports — показать список SIP-транспортов;
core show translation — вывод таблицы транскодинга. Показывает кодеки установленные в системе и время требуемое для транскодинга одной секунды аудиоданных из одного кодека в другой;
pjsip show channels — информация о всех активных SIP-соединениях;
quectel show device state quectel0 — показать текущее состояние USB-модема 4G;
exit — выход в консоль Linux.
При необходимости в Asterisk можно изменить конфигурацию, установить дополнительные модули и настроить новые функции. Список всех доступных модулей Asterisk и других пакетов доступных для загрузки и установки можно найти по этой ссылке: https://bin.entware.net/aarch64-k3.10/ (AArch64)
Для установки новых модулей используется команда opkg.
Пример использования команды для установки видеокодека H.264: opkg install asterisk-format-h264
Подробную информацию по конфигурированию Asterisk можно найти в книге 'Asterisk: The Definitive Guide, 5th Edition', а также среди множества статей опубликованных в интернете.
Информация по проекту Entware: https://forum.keenetic.ru/forum/4-каталог-готовых-решений-opkg/