- Установка DAHDI
- Описание DAHDI
- Необходимые пакеты
- Скачивание DAHDI
- Распаковка DAHDI
- Сборка и установка DAHDI
- Установка и базовая настройка сервера Asterisk на Ubuntu
- Подготовка сервера
- Установка
- Сборка DAHDI
- Сборка LibPRI
- Установка Asterisk
- Настройка и запуск
- Ошибки запуска
- Предупреждения при запуске
- Заведение первых номеров
- Проверка
- База знаний
- Информация о процессе перехода с Zaptel версии 1.2 или 1.4 на DAHDI
- Важные замечания по процессу перехода:
- Замечания, касающиеся пакета dahdi-linux:
- Замечания, касающиеся пакета dahdi-tools:
Установка DAHDI
Описание DAHDI
DAHDI расшифровывается как Digium Asterisk Hardware Device Interface, интерфейс оборудования Asterisk фирмы Digium. DAHDI представляет собой набор драйверов и утилит для различных аналоговых и цифровых телефонных плат, в частности, разработанных фирмой Digium. Драйверы DAHDI являются независимыми от системы Asterisk и могут использоваться другими приложениями. Ранее DAHDI имел название Zaptel, поскольку принадлежал к проекту Zapata Telephony Project.
Код DAHDI может быть скачан отдельными блоками (dahdi-linux для драйверов DAHDI и dahdi-tools для утилит DAHDI), кроме того, DAHDI может быть скачан единым пакетом под названием dahdi-linux-complete (он содержит как драйверы, так и утилиты DAHDI).
Почему DAHDI разделен на 2 части?
DAHDI разделен на две части (драйверы linux и утилиты) поскольку драйверы могут быть портированы [кем-либо] на другие операционные системы (такие как FreeBSD). В конце концов мы будем иметь пакеты драйверов dahdi-linux, dahdi-freebsd, и так далее.
Текущие версии libpri, DAHDI и Asterisk можно скачать здесь: http://downloads.digium.com/pub/telephony/
Необходимые пакеты
Для корректной работы DAHDI необходимо установить системые библиотеки. Для большинства операционных систем, библиотеки имеют название, совпадающее с названием пакета, но к этому названию обычно добавляется приставка -dev или -devel. К примеру, для Red Hat Linux Вам необходимо установить как «openssl», так и «openssl-devel» пакеты.
Список библиотек, которые Вам понадобятся, включает в себя:
- OpenSSL
- ncurses
- newt
- libxml2
- kernel headers (этот пакет нужен для драйверов DAHDI)
Скачивание DAHDI
Как уже говорилось, скачать DAHDI можно (и нужно) здесь: http://downloads.digium.com/pub/telephony/. Вы можете скачать отдельно архивы dahdi-linux и dahdi-tools, распаковать их и установить каждый индивидуально. Мы же рассмотрим более простой вариант — скачивание и распаковку полного пакета: dahdi-linux-complete. Для этого Вы открываете указанный выше URL, находите там каталог dahdi-linux-complete и в этом каталоге выбираете файл вида dadhi-linux-complete-2.X.Y+2.X.Y.tar.gz, где 2.X.Y — номер версии dahdi.
Чтобы скачать файл, запускаете команду вида:
cd /usr/src/
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-2.X.Y+2.X.Y.tar.gz
где 2.X.Y — номер версии dahdi, например:
cd /usr/src/
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-2.6.2+2.6.2.tar.gz
Распаковка DAHDI
Для распаковки DAHDI запускаете команду вида:
tar -zxvf dahdi-linux-complete-2.X.Y+2.X.Y.tar.gz
Сборка и установка DAHDI
Для настройки конфигурации, сборки и установки DAHDI на компьютере с подключением к интернету, запустите следующие команды:
cd dahdi-linux-complete-2.X.Y+2.X.Y
make
make install
make config
Для настройки конфигурации, сборки и установки DAHDI на компьютере без подключения к интернету, сначала скачайте:
wget http://downloads.digium.com/pub/telephony/firmware/releases/dahdi-fw-hx8-2.06.tar.gz
wget http://downloads.digium.com/pub/telephony/firmware/releases/dahdi-fw-oct6114-064-1.05.01.tar.gz
wget http://downloads.digium.com/pub/telephony/firmware/releases/dahdi-fw-oct6114-128-1.05.01.tar.gz
wget http://downloads.digium.com/pub/telephony/firmware/releases/dahdi-fw-vpmoct032-1.8.0.tar.gz
wget http://downloads.digium.com/pub/telephony/firmware/releases/dahdi-fw-tc400m-MR6.12.tar.gz
wget http://downloads.digium.com/pub/telephony/firmware/releases/dahdi-fwload-vpmadt032-1.25.0.tar.gz
после чего сохраните все эти файлы внутри папки dahdi-linux-complete:
Источник
Установка и базовая настройка сервера Asterisk на Ubuntu
Инструкция позволит быстро познакомиться с сервером Asterisk, выполнив базовые действия по установке и настройке сервера. Нижеописанные действия протестированы на Ubuntu 16.04 и Asterisk 15.
Подготовка сервера
Актуализируем список пакетов:
Установка
Установку можно выполнить с помощью команды apt install asterisk. Но в данной инструкции мы разберем установку путем сборки из исходников.
Рекомендуется установить Asterisk с DAHDI (драйверы плат интерфейсов телефонии) и LibPRI (библиотека для работы с потоковыми TDM-интерфейсами). Сначала необходимо собрать DAHDI, затем LibPRI и только потом — Asterisk.
Устанавливаем пакеты, необходимые для корректной сборки DAHDI и LibPRI:
apt install make gcc
Сборка DAHDI
Распаковываем его и переходим в распакованный каталог:
tar -xvf dahdi-linux-complete-current.tar.gz
Собираем пакет и устанавливаем его:
Выходим из каталога dahdi:
Сборка LibPRI
tar -xvf libpri-current.tar.gz
Собираем и устанавливаем:
Выходим из каталога libpri:
Установка Asterisk
Переходим по ссылке https://downloads.asterisk.org/pub/telephony/asterisk и копируем ссылку на последнюю версию asterisk. Используя ссылку, скачиваем исходник:
* в моем случае, последняя версия была 15.
Распаковываем архив и переходим в папку, появившуюся после распаковки:
tar -xvf asterisk-*.tar.gz
Устанавливаем библиотеки для работы с mp3:
./configure —prefix=/usr —sysconfdir=/etc —localstatedir=/var —libdir=/usr/lib64 —with-dahdi —with-pri —with-iconv —with-libcurl —with-speex
- —with-dahdi — с драйверами DAHDI.
- —with-pri — с библиотекой PRI.
- —with-iconv — с возможностью конвертации кодировок (будет не лишним для поддержки русских символов).
- —with-libcurl — возможность извлекать данные посредством CURL-запросов (по http).
- —with-speex — дополнительный VBR-кодек (используется на многих софт-фонах).
** список всех доступных опций можно посмотреть командой ./configure -h.
Мы должны увидеть логотип астериска:
Вызываем оконное меню настройки модулей:
Для большинства случаев, настройки можно оставить по умолчанию. В противном случае рекомендуется изучить опции и выбрать необходимые. После нажимаем Save & Exit.
Затем собираем исходник:
И выполняем установку:
Установим примеры конфигурационных файлов и документацию:
Устанавливаем скрипт инициализации (для автозапуска):
Устанавливаем скрипты для отсекания логов:
Создаем конфигурационный файл для указания дополнительного пути с библиотеками:
Добавляем в него одну строчку:
* это путь до каталога с библиотеками, с которым мы собирали asterisk (опция —libdir).
Настройка и запуск
Открываем конфигурационный файл:
И редактируем следующее:
runuser = asterisk
rungroup = asterisk
defaultlanguage = ru
documentation_language = ru_RU
Создаем системную учетную запись asterisk:
useradd asterisk -m
chown -R asterisk:asterisk /var/run/asterisk
chown -R asterisk:asterisk /etc/asterisk
chown -R asterisk:asterisk /var/
chown -R asterisk:asterisk /usr/lib64/asterisk
chown -R asterisk:asterisk /var/log/asterisk
Исправляем ошибки и предупреждения. В моем случае были следующие.
Ошибки запуска
No configured users for ARI. ARI предоставляет API для Asterisk REST Interface. В данном примере, отключаем поддержку:
Name or service not known. Если появится такая ошибка, система не может разрешить имя компьютера в IP-адрес. Необходимо правильно настроить DNS или прописать имя компьютера в файл /etc/hosts.
No directory URL or host found. Модуль для работы lpad неправильно настроен или не настроен.
PostgreSQL RealTime: Failed to connect database asterisk on 127.0.0.1. Модуль для работы с СУБД PostgreSQL.
Failed to open /dev/dahdi/transcode: No such file or directory. Ошибку можно увидеть, если нет оборудования DAHDI.
Вышеописанные ошибки возникают из-за включенных, но не используемых модулей. Отключаем:
noload => res_config_ldap.so
noload => res_config_pgsql.so
noload => codec_dahdi.so
Предупреждения при запуске
- Unable to find a valid server address or name.
- Process_dahdi: Ignoring any changes to .
- CEL pgsql config file missing global section.
- Cel_tds module had config problems; declining load.
Отключаем следующие модули:
noload => res_phoneprov.so
noload => app_dahdiras.so
noload => chan_dahdi.so
noload => res_pjsip_phoneprov_provider.so
noload => cel_pgsql.so
noload => cel_tds.so
Список всех загружаемых модулей можно посмотреть командой:
ls -la /usr/lib64/asterisk/modules/
Разрешаем сервис asterisk и запускаем его:
systemctl enable asterisk
systemctl start asterisk
Заведение первых номеров
Для первой настройки достаточно завести 2 номера с возможностью подключения по SIP.
Создаем правило обработки вызова (контекст). Открываем следующий файл:
И добавляем в него следующее:
[outcaling]
exten => _XXXX,1,Dial(SIP/$
* создаем контекст с именем outcaling для четырехзначных номеров (XXXX) с вызовом по SIP по внутреннему номеру.
Открываем следующие конфигурационный файл:
И добавляем в него два внутренних номера (extensions):
[1001]
type=friend
regexten=1001
secret=1234
context=outcaling
host=dynamic
callerid=»1001″
disallow=all
allow=alaw
allow=ulaw
language=ru
callgroup=1
pickupgroup=1
qualify=yes
canreinvite=yes
call-limit=4
nat=no
[1002]
type=friend
regexten=1002
secret=1234
context=outcaling
host=dynamic
callerid=»1002″
disallow=all
allow=alaw
allow=ulaw
language=ru
callgroup=1
pickupgroup=1
qualify=yes
canreinvite=yes
call-limit=4
nat=no
- [1001], [1002] — имена для обозначения номеров.
- type — типы проверки номеров. Могут быть peer, user или friend. Peer — вызовы сопоставляются с IP-адресами и номерами портов. User — проверка username. Friend — включает возможности peer и user (проверка username и IP-адреса источника) и лучше всего подходит для телефонов и телефонных программ.
- regexten — добавочный номер. Если не задан, используется имя.
- secret — пароль для аутентификации.
- context — контекст или группа правил.
- host — IP-адрес или имя клиента. Для автоматической регистрации используем dynamic.
- callerid — идентификатор пользователя при звонке.
- disallow — запрещает кодеки (задается перед параметром allow).
- allow — разрешает кодеки. alaw и ulaw — алгоритмы для кодеков g711.
- language — код используемого языка.
- callgroup — задает группу устройства (для возможности перехвата).
- pickupgroup — задает перечень групп, которые можно перехватывать.
- qualify — включает или отключает периодическую проверку подключенного клиента.
- canreinvite — включает или отключает прохождение голосового RTP трафика через Asterisk. Устанавливать, только если клиент поддерживает функцию SIP re-invites.
- call-limit — ограничение количества одновременных вызовов.
- nat — устанавливается в yes, если клиент находиться за NAT.
systemctl restart asterisk
Проверка
Все, что происходит в Asterisk можно посмотреть в лог-файле командой:
tail -f /var/log/asterisk/messages
Для теста настроенного сервера можно воспользоваться IP-телефоном или софт-фоном на компьютере или телефоне. Например, а качестве SIP-клиента под Windows можно установить бесплатную программу 3CX, для Android — Zoiper.
Подробнее рассмотрим настройку 3CX. Скачиваем ее с официального сайта. Устанавливаем, приняв лицензионное соглашение и нажимая далее. После установки запускаем приложение и на запрос отвечаем, что создадим новый профиль. Нажимаем New и вводим данные для подключения:
* настраиваем первый клиент для подключения с логином и паролем 1001 / 1234, второй — 1002 / 1234.
Источник
База знаний
Информация о процессе перехода с Zaptel версии 1.2 или 1.4 на DAHDI
Процесс перехода с Zaptel на DAHDI довольно таки простой и прямолинейный.
Установите пакет DAHDI согласно прилагающимся к нему инструкций по установке, затем переконфигурируйте и пересоберите сам Asterisk.
Релизы Asterisk ветки 1.4 с версией выше 1.4.21, и все релизы ветки 1.6, автоматически будут использовать DAHDI вместо Zaptel, даже если Zaptel все еще установлен и присутствует в системе.
Важные замечания по процессу перехода:
- Пакет Zaptel, который включал в себя, как модули драйверов ядра системы, так и пользовательские утилиты для конфигурации и управления этими модулями, был разбит на два пакета. Для Линукс систем это:
- dahdi-linux: модули драйверов ядра системы.
- dahdi-tools: пользовательские утилиты.
Кроме того, существует пакет с именем dahdi-linux-complete, который содержит в себе оба пакета: dahdi-linux и dahdi-tools, для упрощения процесса установки.
Обратите внимание: Пакеты dahdi-linux и dahdi-tools имеют свою раздельную систему нумерации версий; они не синхронизируются при выпуске новых версий любого из пакетов, и вполне возможно использовать в системе, например,
dahdi-tools 2.0.6 совместно с dahdi-linux 2.0.11. Номер версии пакета dahdi-linux-complete всегда будет включать в себя номера версий обеих пакетов, для того чтобы Вы могли всегда понять, что в него входит.
Замечания, касающиеся пакета dahdi-linux:
- Имена основных модулей ядра были изменены; в следующей зависимости:
- Имена модулей ядра, которые являются аппаратными драйверами для различных карт не изменились, однако драйвера для wcusb и torisa более не входят в комплект.
- Этот пакет более не включает в себя утилиту ‘menuselect’ для выбора модулей для компиляции; Теперь автоматически будут собраны все модули, которые можно собрать.
- Теперь нет больше возможности выбрать программный эхоподавитель для включения его в dahdi.ko во время компиляции; все (на данный момент четыре) программных эхоподавителя (MG2, KB1, SEC и SEC2) теперь компилируются как модули ядра, а если двоичный объектный файл для Digium HPEC эхоподавителя был помещен в нужную директорию, тогда также будет собран HPEC модуль. Любой или даже все эти модули эхоподавителей могут быть загружены одновременно, а конкретный эхоподавитель, который будет использоваться для каналов в системе, может быть выбран с помощью утилиты dahdi_cfg из пакета dahdi-tools.
Обратите внимание:
Теперь нужно обязательно указать эхоподавитель, который будет использоваться для каналов в системе, используя dahdi_cfg, за исключением тех случаев, когда у используемых интерфейсных карт есть свой включенный аппаратный модуль эхоподавления. В DAHDI, по умолчанию, нет программного эхоподавителя.
Замечания, касающиеся пакета dahdi-tools:
- Имена множества утилит были изменены; в следующей зависимости:
- Системный файл конфигурации был переименован из /etc/zaptel.conf в /etc/dahdi/system.conf (в Линуксе).
- Утилита dahdi_cfg теперь может использоваться для выбора эхоподавителя для каждого из канала или группы каналов на основании настроек из файла конфигурации: system.conf; См. примеры в файле: system.conf.sample.
- Конфигурация XPP карт для скриптов init_card_*, теперь вынесена в файл /etc/dahdi/xpp.conf, где используется простой синтаксис (пример включен в пакет). Для модулей PRI, параметр ‘pri_protocol’, определяет, какой протокол будет
использоваться (E1/T1).
- В PRI модулях Astribank, поведение индикаторов отображает, какой из портов является источником синхронизации *CLOCK MASTER* (красный цвет), кто использует этот источник *CLOCK SLAVE* (зеленый цвет). Обычно (но не всегда), это соответствует настройкам для NT/TE в Asterisk.
Источник