Установка дополнительного opkg-пакета Asterisk 11 на интернет-центре Keenetic позволяет расширить его возможности функциями телефонной станции на основе протокола IP (IP PBX). Такая телефонная станция может обслуживать около 10-ти пользователей, обеспечивая маршрутизацию звонков через несколько внешних линий. Ее можно использовать для организации телефонной сети в небольшом офисе. Кроме того, с ее помощью пользователи устройств Keenetic III и Keenetic Plus DECT могут расширить функциональность своих устройств.
Чтобы максимально упростить установку и конфигурирование пакета Asterisk 11 воспользуйтесь предустановленным Asterisk11. В нем сконфигурированы следующие функции:
-
Внешние линии для подключения к операторам IP-телефонии
Четыре линии для подключения к операторам Sipnet, YouMagic, Multifon и Zadarma. Выбор нужной линии для исходящего вызова осуществляется с помощью специальных префиксов. - Внутренние линии для подключения смартфонов, софтфонов, IP-телефонов, VoIP-шлюзов и т.п. к серверу Asterisk установленному на устройстве Keenetic. Пользователи подключенных устройств смогут звонить и принимать вызовы через внешние телефонные линии подключенные к Asterisk, а также звонить друг другу по внутренним номерам через Asterisk.
-
Транспорт TCP
Требуется для подключения к некоторым операторам IP-телефонии. Обеспечивает надежную доставку сообщений SIP размером более 1300 байт с использованием фрагментации. -
Защищенный транспортный протокол TLS
для обмена сообщениями SIP. Этот протокол использует аутентификацию SIP-сервера с сертификатами и шифрование сообщений SIP. Гарантирует подключение к подлинному SIP-серверу. Препятствует перехвату информации о внешних вызовах злоумышленниками. Защищает SIP-аккаунт от взлома. -
Защищенный протокол передачи медиаданных SRTP
Защищает от прослушивания разговоров. Должен использоваться одновременно с TLS. -
Функция перевода вызова (Call Transfer)
чтобы переводить вызовы на другой внутренний или внешний номер. Работает на любом устройстве подключенном к Asterisk11. -
Голосовая почта (автоответчик)
Абоненты, которые позвонят вам, когда вы не можете ответить, смогут оставить для вас голосовое сообщение. Сервис использует голосовое меню на русском языке. -
Голосовое меню для входящих вызовов
Позвонивший по внешней линии абонент слышит приглашение набрать внутренний номер абонента. Он набирает внутренний номер и Asterisk соединяет его с нужным пользователем. -
Конференции для трех и более участников
Каждый пользователь подключившийся к конференции сможет разговаривать со всеми остальными пользователями в конференции. - Запись разговоров
Все разговоры записываются на USB-накопитель подключенный к интернет-центру Keenetic.
Что нужно для установки Asterisk 11
- Интернет-центр Keenetic c официальной микропрограммой NDMS v2.08 или выше и установленными модулями OPKG (кроме Keenetic VOX, LTE и DSL). Рекомендуем использовать старшие модели Keenetic с производительными процессорами, такие как Keenetic Giga и Keenetic Ultra.
- USB-накопитель с разделом ext2 размером не менее 200 Мб. При использовании FLASH-накопителей не рекомендуется использовать другие файловые системы, такие как NTFS, FAT, ext3, ext4, т.к. это может вызвать неработоспособность Asterisk или быстрый выход из строя FLASH-накопителя. Для создания раздела ext2 можно воспользоваться командами fdisk и mkfs операционной системы Linux. В системе Windows для этого можно воспользоваться условно-бесплатным приложением MiniTool Partition Wizard Free или другим аналогичным ПО, предназначенным для работы с физическими дисками (Paragon Partition Manager Free; AOMEI Partition Assistant Standard Edition).
Установка Asterisk 11
- Подключите USB-накопитель с разделом ext2 к устройству Keenetic.
- Активируйте общий доступ к файлам в разделе ext2 на USB-накопителе в сети Windows (веб-конфигуратор > Приложения > Сеть Windows).
- Используя Windows Explorer (Проводник) на компьютере с OS Windows подключитесь к устройству Keenetic и зайдите в раздел ext2 на USB-накопителе. Для этого наберите \\192.168.1.1 в адресной строке, затем откройте папку соответствующую метке раздела ext2.
- В разделе ext2 создайте папку с именем “install” и поместите в нее архив c предустановленным Asterisk 11
-
На странице Приложения > OPKG веб-конфигуратора Keenetic включите поддержку OPKG, затем в выпадающем списке выберите раздел ext2 с архивом Asterisk 11 в папке install на USB-накопителе и нажмите “Применить”. Далее произойдет распаковка инсталляции Asterisk 11 из архива. Через 30-60 секунд в системном журнале устройства должны появиться следующие сообщения:
[I] Aug 22 12:16:48 ndm: Opkg::Manager: disk is set to: opkg:/.
[I] Aug 22 12:16:48 ndm: kernel: EXT2-fs (sda3): re-mounted. Opts: (null)
[I] Aug 22 12:16:48 ndm: Opkg::Manager: /tmp/mnt/opkg mounted to /tmp/mnt/opkg.
[I] Aug 22 12:16:48 ndm: Opkg::Manager: /tmp/mnt/opkg mounted to /opt/.
[I] Aug 22 12:16:48 npkg: inflating "keenetic-entware-ast11-2018-12-07.tar.gz".
[I] Aug 22 12:16:51 ndhcpc: GigabitEthernet0/Vlan2: received ACK for 193.0.174.233 from 193.0.174.24.
[I] Aug 22 12:16:57 ndm: Opkg::Manager: /tmp/mnt/opkg initialized.
[I] Aug 22 12:16:57 ndm: Opkg::Manager: init script reset to default: /opt/etc/initrc.
[I] Aug 22 12:16:57 ndm: Core::ConfigurationSaver: saving configuration...
[E] Aug 22 12:16:57 ndm: Opkg::Manager: invalid initrc "/opt/etc/initrc": no such file or directory, trying /opt/etc/init.d/.
[I] Aug 22 12:16:57 root: Started asterisk from .
-
Переходим в настройки роутера через консоль, переходим в настройки opkg и делаем обновление установленных пакетов:
(config)> exec sh
BusyBox v1.24.2 () built-in shell (ash)
/ # opkg update
Downloading http://pkg.entware-keenetic.ru/binaries/keenle/Packages.gz.
Updated list of available packages in /opt/var/opkg-lists/keenle.
/ # opkg upgrade
Upgrading terminfo on root from 6.0-1b to 6.0-1c...
Downloading http://pkg.entware-keenetic.ru/binaries/keenle/terminfo_6.0-1c_keenle.ipk.
Upgrading ldconfig on root from 1.0.17-8 to 1.0.17-10...
Downloading http://pkg.entware-keenetic.ru/binaries/keenle/ldconfig_1.0.17-10_keenle.ipk.
Upgrading asterisk11-res-timing-pthread on root from 11.25.1-1 to 11.25.3-1...
Downloading http://pkg.entware-keenetic.ru/binaries/keenle/asterisk11-res-timing-pthread_11.25.3-1_keenle.ipk.
Upgrading libc on root from 1.0.17-8 to 1.0.17-10...
Downloading http://pkg.entware-keenetic.ru/binaries/keenle/libc_1.0.17-10_keenle.ipk.
Upgrading asterisk11-app-record on root from 11.22.0-2 to 11.25.3-1...
Downloading http://pkg.entware-keenetic.ru/binaries/keenle/asterisk11-app-record_11.25.3-1_keenle.ipk.
Upgrading asterisk11 on root from 11.22.0-2 to 11.25.3-1...
Downloading http://pkg.entware-keenetic.ru/binaries/keenle/asterisk11_11.25.3-1_keenle.ipk. -
Перезагружаем роутер не выходя из консоли:
(config)> system reboot
Core::System::RebootManager: Rebooting the system. -
После перезагрузки увидим следующие записи:
[I] Aug 22 13:09:58 ndm: Opkg::Manager: disk is set to: 0033b33b-4907-4ad1-8fab-1dee13d57b48:/.
[I] Aug 22 13:09:58 ndm: kernel: EXT2-fs (sda3): re-mounted. Opts: (null)
[I] Aug 22 13:09:58 ndm: Opkg::Manager: /tmp/mnt/opkg mounted to /tmp/mnt/opkg.
[I] Aug 22 13:09:58 ndm: Opkg::Manager: /tmp/mnt/opkg mounted to /opt/.
[I] Aug 22 13:09:58 ndm: Opkg::Manager: /tmp/mnt/opkg initialized.
[E] Aug 22 13:09:58 ndm: Opkg::Manager: invalid initrc "/opt/etc/initrc": no such file or directory, trying /opt/etc/init.d/.
[I] Aug 22 13:09:58 root: Started asterisk from .
[I] Aug 22 13:09:58 dropbear[1021]: Running in backgroundЭто означает, что Asterisk успешно стартовал.
Примечания:
- Asterisk стартует автоматически после каждой перезагрузки устройства;
- Asterisk установленный на USB-накопителе можно запустить на любом устройстве Keenetic с NDMS 2.08 или выше с установленными модулями OPKG;
- перед тем, как отключить USB-накопитель с инсталляцией Entware от устройства Keenetic или выключить Keenetic с подключенным накопителем, не забывайте размонтировать все разделы накопителя на странице "Системный монитор" веб-конфигуратора Keenetic. В противном случае инсталляция Entware на накопителе может стать неработоспособной.
Конфигурирование и использование Asterisk11
В данной инсталляции Asterisk11 сконфигурированы следующие функции:
-
Десять внутренних номеров 1000..1009 для регистрации устройств без поддержки широкополосного кодека G.722. При настройке устройств используйте следующие данные:
SIP Register/Proxy/Domain: 192.168.1.1:6060
SIP Transport: UDP
SIP User ID/SIP Auth ID: внутренний номер 100x
Password: OPKGast11onk3
DTMF: RFC2833
Voice Codecs: G.711u
-
Десять внутренних номеров 2000..2009 для регистрации устройств с поддержкой широкополосного кодека G.722, который позволяет значительно улучшить качество передаваемого голоса во время телефонных разговоров. При настройке устройств используйте следующую информацию:
SIP Register/Proxy/Domain: 192.168.1.1:6060
SIP Transport: UDP
SIP User ID/SIP Auth ID: внутренний номер 200x
Password: OPKGast11onk3
DTMF: RFC2833
Voice Codecs: G.722, G.711u
Пароли для внутренних номеров можно переназначить в конфигурационном файле /etc/asterisk/sip.conf -
Четыре преднастроенные внешние линии (транки) для подключения к операторам Sipnet, YouMagic, Multifon и Zadarma
Для подключения к нужному оператору требуется выполнить следующее:
1) в конфигурационном файле \etc\asterisk\sip.conf раскомментировать (удалить “;” в начале строк) соответствующие блоки параметров и вписать соответствующие данные вашего SIP-аккаунта - телефонный номер и пароль - вместо “XXXXXXXX” и “YYYYYYYY” соответственно;
2) в файле \etc\asterisk\extensions.conf найти и заменить “SIPNET-NUMBER”, “YUMAGIC-NUMBER”, “MULTIFON-NUMBER” и “ZADARMA-NUMBER” на телефонные номера ваших аккаунтов этих операторов. О том, как редактировать конфигурационные файлы Asterisk11 см далее.
Примечание:
для Sipnet можно использовать транспортный протокол TLS или UDP (но не оба одновременно), для Zadarma - UDP или TCP (но не оба одновременно), остальные транки используют UDP. -
Префиксы для выбора линии при исходящем вызове.
Чтобы направить исходящий вызов через нужную линию наберите префикс *1, *2, *3 или *4 (Sipnet, YouMagic, Multifon и Zadarma соответственно), затем номер абонента в формате 8XXXXXXXXXX. Через каждую из линий разрешены исходящие вызовы на номера МГТС, Beeline и MTS. Чтобы разрешить другие направления необходимо внести соответствующие изменения в конфигурационный файл extensions.conf. При исходящем вызове в трубке телефона звучит имя оператора IP-телефонии, через которого маршрутизируется данный вызов. -
Голосовая почта с русскоязычным голосовым меню.
Если при входящем вызове внутренний номер не отвечает в течение минуты, вызывающая сторона слышит приглашение оставить сообщение для данного пользователя. При наличии новых сообщений Asterisk направляет специальную нотификацию на телефон пользователя и телефон сигнализирует об этом. Доступ к сообщениям по номеру 9000. Для авторизации требуется ввести внутренний номер 100x или 200x в качестве номера абонента и пароля. Пароли голосовой почты можно изменить в конфигурационном файле \etc\asterisk\voicemail.conf - Функции перевода вызова без консультации/с консультацией (Blind/Attended Call Transfer). Во время разговора нужно дважды нажать # (Blind Transfer) или *(Attended Transfer), затем набрать номер абонента, которому требуется перевести вызов.
-
Music On Hold
При постановке вызова на удержание звучит музыка (Music On Hold или MOH, четыре композиции). -
Тестовый внутренний номер 9999
При вызове по этому номеру звучит музыка. Можно использовать для тестирования устройства и функций Asterisk 11. -
Эхотест по внутреннему номеру 800
Можно записать сообщение, а затем прослушать его чтобы проверить обмен голосовыми данными между Asterisk 11 и вашим устройством. -
Голосовое меню при входящих внешних вызовах
При входящем внешнем вызове вызывающему абоненту предлагают ввести внутренний номер пользователя. Если номер не набран, вызов направляется на внутренний номер 1000. При поступлении внешнего вызова на внутренний номер, на соответствующий телефон отправляется номер внешнего абонента и имя оператора, через которого поступил вызов. Эти данные могут отображаться на дисплее телефона. -
Кодеки G.711u и G.722
При внутренних вызовах между номерами 200x используется кодек G.722. При внутренних вызовах между номерами 100x, а также между номерами 200x и 100x используется кодек G.711u. При внешних вызовах используется кодек G.711u. -
Конференции для трех и более участников
Для присоединения к конференции нужно позвонить по номеру **1. Каждый пользователь присоединившийся к конференции может разговаривать со всеми остальными пользователями в конференции. Когда пользователь присоединяется к конференции или выходит из нее все остальные пользователи в конференции слышат соответствующие сигналы оповещения. Первый пользователь присоединившийся к конференции слышит специальное оповещение и музыку до тех пор, пока к конференции не подключатся другие пользователи.
Каждый пользователь после подключения к конференции может вызвать в конференцию другого пользователя. Для этого, находясь в конференции нужно набрать “**”, дождаться сигнала ответа станции (непрерывный гудок) и затем набрать номер пользователя 1000..1009 или 2000.. 2009. Когда вызванный пользователь отвечает на вызов, он попадает в конференцию вместе с вызывающим пользователем. Если вызываемый пользователь отклоняет вызов или не отвечает в течение определенного времени, вызов прерывается, и вызывающий пользователь возвращается в конференцию. -
Запись разговоров
Запись разговоров при входящих и исходящих внешних и внутренних звонках. Аудиозаписи разговоров в формате PCM 8000Hz mono 128kbps сохраняются на USB-накопителе в каталог /opt/records. Имена файлов аудиозаписей имеют следующий формат:
<caller>-<callee>_<YYMMDD>-<HHMM>.wav
где:
caller – номер вызывающего абонента;
callee – номер вызываемого абонента;YYMMDD – год, месяц и число, когда состоялся звонок ;
HHMM – время (часы, минуты), когда состоялся звонок.
Для записи разговоров используется приложение MixMonitor(), которое вызывается из dialplan. Если запись разговоров требуется отключить для одного или нескольких направлений звонков, в конфигурационном файле /opt/etc/asterisk/extensions.conf закомментируйте строки (добавьте “;” в начале строки) в которых справа встречается следующее: “ ;<------ Call recording ------” .
Интеграция Keenetic III с Asterisk11
Прилагаемая конфигурация для Keenetic III предназначена для подключения встроенного адаптера IP-телефонии этого устройства к предустановленному Asterisk11 развернутому на том же устройстве. Данная конфигурация обеспечивает следующие функции:
- подключение к Asterisk11 с внутренним номером 1000;
- подписка SUBSCRIBE для получения уведомлений голосовой почты. При поступлении новых голосовых сообщений телефон будет сигнализировать об этом (несколько коротких сигналов звучат при включении разговорного режима, а также возможна специальная индикация на дисплее телефона);
- при отсутствии набора в режиме разговора происходит автоматический вызов по номеру 9000 для работы с голосовой почтой.
Чтобы применить данную конфигурацию, загрузите ее на устройство Keenetic III (веб-конфигуратор > Система > Файлы > startup-config), затем перезагрузите устройство.
Интеграция Keenetic Plus DECT с Asterisk11
При развертывании Asterisk11 на устройстве Keenetic с подключенной базовой станцией Keenetic Plus DECT телефонные линии последней можно подключить к внутренним линиям Asterisk11. При этом настройка телефонных линий K+DECT должна соответствовать следующему скриншоту
Для конфигурирования дополнительных линий K+DECT достаточно заменить 1000 на 1002.. 1009 или 2000.. 2009, оставляя остальные настройки теми же, что на скриншоте.
Для всех линий использовать один и тот же пароль “OPKGast11onk3”. Пароли для внутренних линий можно сменить в конфигурационном файле /etc/asterisk/sip.conf.
Для линий 2000..2009 следует также добавить кодек G.722 и сконфигурировать приоритет кодеков следующим образом:
1. G.722
2. G.711u
Каждую DECT-трубку подключенную к K+DECT нужно привязать к индивидуальной линии, как в данном примере с двумя трубками:
DECT-трубки с поддержкой CAT-iq 1.0 HD Voice (практически любые трубки Gigaset) можно привязать к линиям 2000.. 2009. Это позволит использовать кодек G.722 и, тем самым, улучшить качество звука в меню голосовой почты, а также при внутренних вызовах, когда собеседник использует DECT-трубку или другое устройство с поддержкой кодека G.722 подключенное к одной из линий 2000.. 2009. Уточнить, поддерживает ли данная DECT-трубка HD Voice можно на странице настройки DECT-трубки веб-конфигуратора Keenetic Plus DECT:
Конфигурационные файлы Asterisk 11
Конфигурация Asterisk 11 содержится в следующих файлах:
- /etc/asterisk/sip.conf
- /etc/asterisk/extensions.conf
- /etc/asterisk/voicemail.conf
- /etc/asterisk/musiconhold.conf
- /etc/asterisk/modules.conf
Файлы с теми же именами и расширением .bak содержат подробное описание параметров Asterisk на английском языке.
Конфигурационные файлы Asterisk 11 можно открывать для просмотра и редактирования в Windows с помощью редактора Notepad++: https://notepad-plus-plus.org/download/v7.3.1.html
Чтобы открыть конфигурационный файл, в командной строке Windows набрите \\192.168.1.1, откройте папку, соответствующую разделу ext2 с установленным Asterisk 11, перейдите в \etc\asterisk, выберите нужный файл и откройте его с помощью Notepad++.
Применить новую конфигурацию без подключения Linux Shell можно путем выключения и включения OPKG в веб-конфигураторе Keenetic (см. Приложения > OPKG).
Для конфигурирования предустановленного Asterisk 11 из консоли Linux необходимо зайти на устройство по SSH по адресу 192.168.1.1. Для этого можно использовать бесплатный программный SSH-клиент PuTTY (см. http://www.putty.org/). Имя пользователя: "root", пароль: "zyxel". После успешного входа в систему, настоятельно рекомендуется сменить пароль командой “passwd”.
В системе установлен файловый менеджер Midnight Commander, который можно запустить набрав команду “mc”. С его помощью можно выполнять файловые операции и редактировать конфигурационные файлы Asterisk.
Несколько полезных команд интерфейса командной строки Asterisk 11:
asterisk -rvvvvvv — подключение интерфейса командной строки
sip reload — перечитать sip.conf
dialplan reload — перечитать extensions.conf
sip show registry — список зарегистрированных SIP-пиров
core show translation — вывод таблицы транскодинга
core show applications — список зарегистрированных приложений Asterisk
sip show channels — информация об активных SIP-соединениях
sip show channel — выводит подробную информацию о SIP-соединении
exit — выход из интерфейса командной строки в Shell
Более подробную информацию по конфигурированию Asterisk можно найти среди множества статей опубликованных в Интернете.
Сохранение и восстановление инсталляции Asterisk 11
Инсталляцию Entware с Asterisk11 на USB-накопителе можно сохранить в файл, чтобы потом, в случае необходимости, быстро восстановить из файла. Для этого нужно зайти на устройство по SSH, затем в командной строке Linux Shell выполнить следующую команду:
tar cvzf /opt/backup-`date "+%Y-%m-%d_%H-%M"`.tar.gz -C /opt/ bin etc home lib lost+found root sbin share tmp usr var
В результате выполнения команды создается архив в корневом каталоге раздела ext2 на USB-накопителе. Этот архив нужно сохранить. Для восстановления Entware достаточно поместить этот архив в папку /install раздела ext2 на USB-накопителе подключенном к Keenetic и активировать OPKG для данного раздела в веб-конфигураторе Keenetic.
При необходимости в предустановленном Asterisk11 можно изменить конфигурацию, установить дополнительные модули и настроить новые функции. Список всех доступных модулей Asterisk 11 и других пакетов доступных для загрузки и установки на устройства серии Keenetic можно найти по этой ссылке: http://bin.entware.net/mipselsf-k3.4/Packages.html
Для установки новых модулей используется команда opkg. Например, для установки пакета asterisk11 наберите “opkg install asterisk11”. Для установки модулей используется та же команда, например “opkg install asterisk11-app-record ”.
Подробная информация по проекту Entware: https://forum.keenetic.ru/topic/4299-entware/