Установка IP-АТС Asterisk 20.3 на интернет-центр Keenetic

Данная статья является руководством по установке Asterisk 20.3 (Asterisk — коммуникационная платформа от компании Digium) на интернет-центр Keenetic. Asterisk позволяет расширить возможности интернет-центра функциями телефонной станции на основе протокола IP (IP-АТС). Такая телефонная станция может обслуживать десятки внутренних номеров, обеспечивая маршрутизацию звонков через несколько внешних линий, запись разговоров, интерактивные голосовые меню, конференции и другие функции. Ее можно использовать для организации телефонной сети в небольшом офисе. Подключение к Asterisk телефонной станции Keenetic с модулями телефонии Keenetic Plus DECT и Keenetic Linear установленной на том же устройстве выполняется автоматически в процессе настройки.

Чтобы максимально упростить установку и конфигурирование Asterisk воспользуйтесь инсталлятором, который можно скачать по ссылке в конце данной статьи. Он позволяет автоматически установить Asterisk на интернет-центр Keenetic и настроить следующие функции:

  • внутренние номера 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 выполняется автоматически;
  • функция перевода вызова (Call Transfer). Перевод вызова на другой внутренний номер. Работает на любом IP-телефоне подключенном к Asterisk;
  • голосовое меню для входящих звонков. Абонент позвонивший по внешней линии слышит приглашение набрать внутренний номер. Он набирает внутренний номер и Asterisk соединяет его с нужным пользователем;
  • конференции для трех и более участников. Каждый пользователь подключившийся к конференции сможет разговаривать со всеми остальными пользователями в конференции;
  • голосовая почта. Абоненты, которые звонят вам, когда вы не можете ответить, могут оставить для вас голосовое сообщение. Для хранения сообщений требуется внешний USB-накопитель. Настройка голосовой почты выполняется после установки Asterisk в пошаговом режиме с помощью специального скрипта;
  • запись разговоров. Все разговоры могут быть записаны. Для хранения записей разговоров требуется внешний USB-накопитель. Настройка записи разговоров выполняется после установки Asterisk в пошаговом режиме с помощью специального скрипта.

Данный инсталлятор предназначен для установки Asterisk на встроенное хранилище роутера размером не менее 55 МБ. Все необходимые программные компоненты Asterisk загружаются из репозитория в процессе установки.

Для установки Asterisk потребуется следующее:

1. интернет-центр Keenetic со встроенным хранилищем данных. Подходящие модели перечислены ниже.

архитектура 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)

архитектура 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: Peak (KN-2710), Ultra (KN-1811), Giga (KN-1012), Hopper (KN-3811), Hopper SE (KN-3812);

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-трубками или телефонами соответственно.

Операционная система Keenetic версии 4.0.4 или более поздней версии должна быть установлена на интернет-центр со следующими компонентами:

1. сервер SSH;
2. поддержка открытых пакетов;

a. модули ядра для поддержки файловых систем;
b. модули ядра для поддержки USB-аудио (для VoLTE);

3. интерфейс QMI для 4G/3G USB-модемов (для VoLTE);
4. телефонная станция Keenetic (для VoLTE и автоматической настройки SIP-транков).

Подготовка к установке Asterisk

Если требуется настроить звонки VoLTE, то перед началом установки Asterisk выполните следующие действия:

1. подключите USB-модем и адаптер телефонии к интернет-центру. Выполните команду "show usb" и убедитесь в том, что оба устройства появились в системе, как на скриншоте ниже.

show-usb.png

Примечание: USB-модем следует подключить к порту USB3.0, адаптер телефонии — к порту USB2.0;

2. в случае использования адаптера телефонии Keenetic Plus DECT зарегистрируйте хотя бы одну DECT-трубку;

3. убедитесь в том, что телефонная станция Keenetic включена и DECT-трубки или телефоны отображаются в системе (см. на странице веб-конфигуратора "Телефонная станция");

check-phone-station.png

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

Примечание: для установки подойдет любое подключение, включая подключение через сотовую сеть с USB-модемом 4G.

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

1_sipnet-2_novofon.png

Префикс состоит из цифры от 0 до 9 и символа "*". В процессе установки Asterisk конфигурация каждой из линий с таким именем используется для настройки SIP-транка, а префикс используется при создании правил маршрутизации звонков через этот SIP-транк.

Установка Asterisk

1. На странице веб-конфигуратора Управление > Приложения в разделе "Диски и принтеры" выберите "Встроенное хранилище" и создайте в нем новую папку с названием "install".

storage-install.png

2. В зависимости от архитектуры Keenetic загрузите файл инсталлятора Asterisk mipsel-ast-installer.tar.gz, aarch64-ast-installer.tar.gz или mips-ast-installer.tar.gz в папку "install".

storage-install-installer.png

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

opkg-storage.png

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

syslog-start.png

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

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

  • создана телефонная линия "mobile" для подключения встроенной телефонной станции к Asterisk;
  • все DECT-трубки или телефонные порты телефонной станции Keenetic привязаны к телефонной линии "mobile" для звонков VoLTE;
  • выполнена настройка Asterisk для маршрутизации звонков VoLTE через линию "mobile";
  • созданы SIP-транки Asterisk для подключения к операторам IP-телефонии в соответствии с конфигурацией специальных телефонных линий встроенной телефонной станции Keenetic.
    Примечание: инсталлятор выключает линии телефонной станции NVOX, конфигурация которых использовалась для создания SIP-транков;
  • для каждой DECT-трубки или телефона телефонной станции Keenetic создана отдельная телефонная линия для подключения к Asterisk с правилами набора для звонков через SIP-транки, а также для голосовой почты (номер 9000) и тестовых звонков по номерам 800, 802 и 9999 (подробнее о тестовых звонках см. ниже).

На скриншотах ниже представлен пример автоматической настройки телефонной станции Keenetic и Asterisk.

Телефонная станция Keenetic:
nvox-lines-final.png

fxs-port-binding.png

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

pjsip-show-contacts.png

quectel-show-device.png

Подключение IP-телефонов

Внутренние номера 1000..1009 и 2000..2009 сконфигурированные в Asterisk предназначены для подключения IP-телефонов.
При настройке подключения внутреннего номера на IP-телефоне используйте следующие параметры:

SIP registrar/proxy/domain: IP-адрес интернет-центра Keenetic;
SIP User ID: один из номеров 1000..1009 и 2000..2009
SIP Authentication ID: user1000..user1009 и user2000..user2009
Password: ast18-opkg-mipsel
Audio codecs: G.711a, G.711u

Примечание: при автоматической настройке VoLTE и SIP-транков часть внутренних номеров из диапазона 1000..1006 используются для подключения DECT-трубок или телефонов подключенных к интернет-центру с помощью адаптера телефонии. Не используйте эти номера для подключения IP-телефонов.
Пароль указанный выше сконфигурирован автоматически для всех внутренних номеров. Его следует сменить в конфигурационном файле /opt/etc/asterisk/pjsip.conf.

Входящие и исходящие звонки

Для исходящего звонка VoLTE наберите номер абонента на DECT-трубке или телефоне подключенном к телефонному адаптеру и нажмите кнопку вызова. При наборе номера следуйте правилам набора номеров действующим у вашего оператора мобильной связи.
При входящем звонке VoLTE на номер SIM-карты установленной в USB-модеме все DECT-трубки или телефоны начнут звонить, на их дисплеях будет отображаться номер вызывающего абонента и название линии "mobile".
Примечание: на DECT-трубках без поддержки CAT-iq 2.0 отображается только номер вызывающего абонента, а название линии не отображается.

Для исходящего звонка через автоматически сконфигурированный SIP-транк наберите номер абонента с соответствующим префиксом. В примере выше для звонка на номер 1234567 через Sipnet нужно набрать 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". После ответа на вызов играет музыка (MOH).
  • Внутренний номер 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 (см. http://www.putty.org/). При настройке соединения используйте следующие данные:

  • IP-адрес: 192.168.1.1 (в домашнем сегменте Home);
  • тип подключения: SSH;
  • порт: 22. Если компонент "сервер SSH" и/или "SFTP-сервер" установлен на вашем интернет-центре, то укажите порт 222.

При первом подключении подтвердите добавление ключа безопасности в кэш программы Putty для продолжения установки соединения. Для авторизации используйте имя пользователя: "root", пароль: "keenetic".

linux-shell.png

После успешного входа в систему рекомендуем сменить пароль командой "passwd".

Консоль Asterisk

Для подключения консоли Asterisk используйте команду "asterisk -rvvvv" в консоли Linux.

asterisk-console.png

Ниже описаны несколько полезных консольных команд 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 и других пакетов доступных для загрузки и установки можно найти по этой ссылке: http://bin.entware.net/mipselsf-k3.4/Packages.html
Для установки новых модулей используется команда "opkg".
Пример использования команды для установки видеокодека H.264: "opkg install asterisk-format-h264".
Подробную информацию по конфигурированию Asterisk можно найти в книге "Asterisk: The Definitive Guide, 5th Edition", а также среди множества статей опубликованных в Интернете.
Информация по проекту Entware: https://forum.keenetic.ru/topic/4299-entware/
Инсталлятор Asterisk для MIPSel: mipsel-ast-installer-20240528.tar.gz
Инсталлятор Asterisk для AArch64: aarch64-ast-installer-20240528.tar.gz
Инсталлятор Asterisk для MIPS: mips-ast-installer-20240528.tar.gz

 

Была ли эта статья полезной?

Пользователи, считающие этот материал полезным: 9 из 10