Установка DAHDI, LibPRI и Asterisk 16 на Centos7
Asterisk – бесплатное решение для организации VoIP телефонии, обладая всеми возможностями АТС, предоставляет более многофункциональное управление звонками. В данной статье рассмотрена подробная установка Asterisk 16 на CentOs 7.5. Asterisk 16 выпущен с расширенной поддержкой (LTS), обновления будут выпускаться в течении пяти лет, в которых основное внимание уделяется обеспечению оптимизации производительности и стабильности. Основные улучшения, […]
Asterisk – бесплатное решение для организации VoIP телефонии, обладая всеми возможностями АТС, предоставляет более многофункциональное управление звонками.
В данной статье рассмотрена подробная установка Asterisk 16 на CentOs 7.5. Asterisk 16 выпущен с расширенной поддержкой (LTS), обновления будут выпускаться в течении пяти лет, в которых основное внимание уделяется обеспечению оптимизации производительности и стабильности.
Основные улучшения, представленные в Asterisk 16:
- Увеличение производительности обработки SIP – вызовов.
- Снижена нагрузка на CPU и уменьшено потребление памяти в канальном драйвере PJSIP.
- Добавление поддержки обмена текстовыми сообщениями, использование Asterisk как коммуникационную платформу широкого профиля.
- Повышена производительность обработки видеопотоков и улучшена адаптация к изменению качества канала связи.
- В модуль app_queue появилась возможность настройки времени ожидания завершения вызова в привязке к отдельным участникам (агентам), а не только для каждой очереди. Так же добавлена поддержка обработчика predial, вызываемого перед созданием канала вызываемого или вызывающего абонента.
- В модуль app_originate добавлена опция `a`, которая информирует о вызове в асинхронном режиме, т.е. управление сразу возвращается в приложение вместо ожидания ответа.
- Модуль app_fax в новой версии объявлен устаревшим, вместо него следует использовать res_fax.
- Добавлены новые вызовы AMI (Asterisk Manager Interface) в драйвер PJSIP, которые позволяют инспектировать настройки:
- PJSIPShowAors для вывода списка AOR (Address-Of-Record);
- PJSIPShowAuths для получаения списка секций с параметрами аутентификации;
- PJSIPShowContacts для вывода контактов.
Вместе с Asterisk выпущен релиз проекта FreePBX 15, в рамках которого совершенствуется интерфейс для управления Asterisk и готовый дистрибутив для удобного развертывания VoIP – системы. Статья по установке FreePBX 15 так же представлена на нашем сайте.
Перейдем к установке Asterisk 16.
Далее необходимо установить зависимости и утилиты.
Для установки некоторых пакетов необходимо подключить дополнительный репозиторий:
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Необходимые устанавливаемые зависимости и утилиты:
# yum groupinstall core && yum groupinstall base && yum groupinstall web server && yum groupinstall development tools
# yum -y install gcc gcc-c++ lynx bison mysql-devel e2fsprogs-devel keyutils-libs-devel krb5-devel libogg libselinux-devel libsepol-devel gmp php-gd php-pdo gnutls-devel libogg-devel openssl-devel zlib-devel perl-DateManip mysql-server php php-mysql php-pear php-mbstring tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel subversion kernel-devel git php-process crontabs cronie cronie-anacron wget vim php-xml uuid-devel libtool libtool-ltdl-devel sqlite-devel libuuid-devel sqlite unixODBC unixODBC-devel mysql-connector-odbc texinfo curl-devel net-snmp-devel neon-devel speex-devel gsm-devel iksemel-devel spandsp-devel mc htop doxygen path svn
# yum -y install lynx mysql-devel e2fsprogs-devel keyutils-libs-devel krb5-devel libogg libselinux-devel libsepol-devel gmp php-gd php-pdo gnutls-devel libogg-devel openssl-devel zlib-devel perl-DateManip mysql-server php php-mysql php-pear php-mbstring tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel kernel-devel php-process crontabs cronie cronie-anacron wget vim php-xml uuid-devel libtool-ltdl-devel sqlite-devel libuuid-devel sqlite unixODBC unixODBC-devel mysql-connector-odbc texinfo curl-devel net-snmp-devel neon-devel speex-devel gsm-devel iksemel-devel spandsp-devel mc htop patch perl automake* kernel kernel-headers-`uname -r` kernel-devel-`uname -r` glibc-headers ipset.x86_64 ipset-devel.x86_64 nmap
Установка параметра тайм зоны:
Для установки параметром необходимо выполнить команду: tzselect
Параметры таймзоны
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
yum install -y ntp*
ntpdate ru.pool.ntp.org
yum upgrade tzdata
chkconfig ntpd on
service ntpd start
date
Перезагружаем систему: reboot.
В дальнейшем может пригодиться Midnight Commander. Midnight Commander – файловый менеджер с текстовым интерфейсом для Unix-подобных операционных систем, а так же Microsoft Windows и Windows NT, OS/2, Mac OS X. Midnight Commander является частью проекта GNU.
Скачивание Midnight Commander: yum –y install mc.
Приступаем непосредственно к установке Asterisk. Оно состоит из нескольких этапов. Далее рассмотрена установка с использованием аналоговых или цифровых сетей. Для этого используется модуль DAHDI. Этот модуль канала пришел на смену Zap и наследует весь его основной функционал, также были расширены возможности по работе с программными эхоподавителями, добавлены новые параметры в файл конфигурации. Модуль DAHDI обеспечивает интерфейсный уровень между Asterisk с одной стороны и драйвером интерфейса Dahdi+программные эхоподавители с другой. Драйвера интерфейсов позволяют использовать аппаратные средства для соединения Asterisk с традиционными аналоговыми и цифровыми телефонными сетями.
Asterisk <-> chan_dahdi <-> Драйвера Dahdi <-> Карта <-> Телефон/Коммутатор/Телефонная сеть
На данный момент драйвер DAHDI поддерживает следующее аппаратное обеспечение:
Аналоговые карты:
- wctdm24xxp (Digium TDM2400P/AEX2400: до 24 аналоговых портов, Digium TDM800P/AEX800: до 8 аналоговых портов, Digium TDM410P/AEX410: до 4 аналоговых портов);
- wctdm (Digium TDM400P, до 4 аналоговых портов);
- xpp: (Xorcom Astribank: USB устройство, до 32 портов включая цифровые BRI и E1/T1 модули);
- wcfxo (X100P, оригинал и его клоны. Простая однопортовая FXO карта).
Цифровые карты
- wct4xxp (Digium TE205P/TE207P/TE210P/TE212P: PCI 2 порта T1/E1/J1, Digium TE405P/TE407P/TE410P/TE412P: PCI 4 порта T1/E1/J1, Digium TE220: PCI-Express 2 порта T1/E1/J1, Digium TE420: PCI-Express 4 порта T1/E1/J1);
- wcte12xp: (Digium TE120P: PCI один порт T1/E1/J1, Digium TE121: PCI-Express один порт T1/E1/J1, Digium TE122: PCI один порт T1/E1/J1);
- wcte11xp: (Digium TE110P: PCI один порт T1/E1/J1);
- wct1xxp: (Digium T100P: PCI один порт T1, Digium E100P: PCI один порт E1);
- tor2: (Tormenta 4 портовая T1/E1 карта от «Zapata Telephony project»).
Другие драйвера
- pciradio (Zapata Telephony PCI Quad Radio Interface);
- wctc4xxp (Аппаратный транскодер кодеков от Digium (необходим модуль dahdi_transcode);
- dahdi_dynamic_eth (Драйвер TDM через Ethernet (TDMoE). Ему необходим модуль dahdi_dynamic);
- dahdi_dynamic_loc (Mirror a local span. необходим модуль dahdi_dynamic);
- dahdi_dummy (Устройство, не предоставляющее каналов, используется только как источник DAHDI сигналов таймера).
Для реализации работы так же необходимо установить LibPRI.
LibPRI – это библиотека, которая предназначена для работы с потоковым TDM-интерфейсами ISDN: PRI (Primary Rate Interface) и BRI (Basic Rate Interface).
Для скачивания переходим в директорию: cd /usr/src/
Скачиваем последние версии Asterisk, DAHDI и LibPRI, для этого используем утилитуwget.
Для данной статьи Asterisk 16 устанавливался на виртуальную машину, соответственно без DAHDI и LibPRI, но ниже представлен список полный:
- wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-2.10.0+2.10.0.tar.gz
- wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
- wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
Далее распаковываем:
tar zxvf dahdi-linux-complete*
tar zxvf libpri*
tar zxvf asterisk*
После распаковки необходимо установить пакеты.
Установка DAHDI:
cd /usr/src/dahdi-linux-complete*
make && make install && make config
Запускаем генератор конфигурации DAHDI: /usr/sbin/dahdi_genconf
Сразу можно включить DAHDI в автозагрузке: chkconfig dahdi on
Редактируем файл /etc/dahdi/modules
Там должна быть одна незакомментированная строка с драйвером для Вашей карты, например, wcte12xp. Остальные модули нам не нужны, их надо закомментировать, чтобы не загружались.
Далее настраиваем /etc/dahdi/system.conf:
Настройка подключения:
- span num — порядковый номер спана
- timing source — выбор источника для синхронизации таймера. 0 – мастер, 1 и более – мастером является удаленная сторона. Чем больше число, тем меньше приоритет.
- line build out (LBO) — выбор в зависимости от расстояния до удаленной стороны.
- framing – тип телефонной сигнализации. Для E1 выбирается ccs или cas.
- coding – кодирование в линии. Для E1 выбирается ami или hdb3.
- yellow – выполняется ли проверка и генерация crc4.
Теперь можно стартовать DAHDI: service dahdi start
При
установке DAHDI в /usr/sbin записывается несколько
утилит:
- dahdi_test
Значения ниже 99,9 — плохой результат. Он означает, что DAHDI-устройство вынуждено конкурировать с другими процессами за прерывания и время процессора, что может привести к ухудшению качества звука.
- dahdi_tool
Показывает статус карты и ошибки в её работе - dahdi_scan
Показывает сведения о карте - dahdi_cfg [options]
Показывает конфигурацию - dahdi_hardware
Показывает сведения об установленной карте
Затем LibPRI:
· cd /usr/src/libpri*
- make && make install
А теперь уже Asterisk:
Первоначально для того, чтобы установился Asterisk 16 без ошибки компиляции необходимо установить libuuid-devel и jansson-devel.
- yum -y install libuuid-devel;
- yum -y install jansson-devel
Если у нас установлена 64-разрядная версия ОС (это можно узнать набрав команду uname -r), то запускаем установку со следущими параметрами:
- ./configure —libdir=/usr/lib64
В случае с 32-разрядной ОС строка для установки выглядит немного иначе:
- ./configure
После выполненной команды должен появится знак [*] Asterisk.
Далее необходимо выполнить make menuselect.
Нам необходим модуль Core Suond Packages, выбираем параметры для русского языка.
Далее выполняем ряд команд: make && make install
После установки копируем файлы с примерами конфигураций в директорию с Asterisk: make samples
Добавляем скрипт запуска Asterisk в /etc/init.d: make config
Для полного запуска системы, сначала необходимо запустить DAHDI, потом Asterisk:
1. service dahdi start
2. service asterisk start
Для перехода в консоль выполним команды asterisk –rvvv
Verbose отвечает за отображение информации о
протекающих в Аsterisk процессах: вызовах, их обработке, запуске call файлов, и
т.п.
Для включения отображения такой
информации есть 2 варианта:
- Подключаясь к asterisk
CLI, выполните строку с добавлением буквы «v»:
asterisk -rv
asterisk -rvv
asterisk –rvvvvvvvvvvvv
При этом количество букв «v»
указывает на уровень отладки verbose: от verbose 1 до verbose 10 (и выше).
Можно также подключиться к Аsterisk, отключив отображении такой информации
вообще:
asterisk -r
- Если у Вас уже
открыт asterisk CLI, то выполните в командной строке астериска:
core set verbose 1
или
core set verbose 3
…
core set verbose 10
Число после verbose отвечает за подробность и количество сообщений. Число может быть и больше 10 (используйте автозаполнение asterisk).
Для отключения вывода сообщений verbose наберите в Аsterisk CLI: core set verbose off.
В данной статье рассматривалась полная установка Asterisk 16 на CentOS 7 с рассмотрением установки DAHDI и LibPRI, что необходимо для сборки АТС с аналоговыми и цифровыми устройствами.
Остались вопросы?
Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
VoIP оборудование
ближайшие курсы
Новые статьи
10 доводов в пользу Asterisk
Распространяется бесплатно.
Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.
Безопасен в использовании.
Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.
Надежен в эксплуатации.
Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.
Гибкий в настройке.
Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.
Имеет огромный функционал.
Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.
Интегрируется с любыми системами.
То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.
Позволяет телефонизировать офис за считанные часы.
В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.
Отличная масштабируемость.
Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.
Повышает управляемость бизнеса.
Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.
Снижает расходы на связь.
Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.
Спасибо огромное за статью.