Меню Рубрики

Установка dahdi для asterisk

Установка 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:

источник

Настройка DAHDI — chan_dahdi

DAHDI Linux и DAHDI Tools

Скачать DAHDI

настройка E1 — /etc/dahdi/system.conf

В синхронной сети должно выполняться одно простое правило — master должен быть соединен с slave. Если это правило нарушается — будут потерянные(skip) или повторенные (slip) кадры.

При разговоре слышно легкое пощелкивание, факсы не идут или проходят с ошибками. У вас неправильно настроена синхронизация. Настройте синхронизацию как описано выше.

ISDN PRI — /etc/asterisk/chan_dahdi.conf

context — привязывает канал к контексту в плане набора (диалплане), тем самым определяя действия при инициации вызова. :

channel — назначает канал или несколько каналов, Каналы могут быть определены индивидуально, через запятую, или диапазоном через дефис.

group — назначает каналы в группу. Для исходящей связи будет выбираться первый свободный канал. Для назначения в несколько групп, перечислите значения через запятую. Чтобы не назначать в группу — оставьте значение пустым.

switchtype — устанавливает тип сигнализации для PRI.

Аналоговые интерфейсы могут стать источником путаницы в Asterisk.
Для FXS интерфейсов используется fxo_ks.
Для FXO — fxs_ks.

priindication: Этот параметр устанавливает то, как сервер Asterisk должен сигнализировать состояние Busy() и Congestion() для удаленного коммутатора или пользователя. По умолчанию: inband. Доступные значения следующие:

pridialplan — устанавливает тип плана набора для ISDN PRI. Игнорируется в большинстве случаев. Может понадобиться для корректной работы CallerID Доступные значения: unknown, local, private, national, international.

overlapdial: если — «yes», то набранные цифры будут сразу отправляться в поток. По умолчанию: no. (enblock)

Состояние аналоговых вызовов

В этой секции описываются директивы сигнализирующие о состоянии вызовов аналоговых интерфейсов.

busydetect — детектирование сигнала занято для FXS, FXO или T1 (E&M, Wink, Feature Group D). Значение ‘yes’ или ‘no’.

callprogress — контроллировать состояние вызова (КПВ, занято или подняли трубку). Значение ‘yes’ или ‘no’.

Читайте также:  Установка катушки зажигания классика

Функции CallerID

usecallerid — разрешить или запретить передачу CallerID (yes/no) По умолчанию ‘yes’.

hidecallerid — скрывать исходящий CallerID. По умолчанию ‘no’.

calleridcallwaiting — получать CallerID во время вызова.

callerid — устанавливает CallerID для данного канала. Принимает данные правильного формата «имя» и . Возможное значение ‘asreceived’ для передачи полученных значений.

Call feature options

Эти параметры включают или отключают дополнительные опции для FXS (FXO) каналов, такие как конференция и пере-адресация и т.д.. Значения могут быть только (yes/no)

threewaycalling — разрешает или запрещает three-way calling для канала.

cancallforward — разрешает или запрещает функцию «следуй за мной».

transfer — разрешает или запрещает функцию флэш для канала (для включения threewaycalling должно быть ‘yes’)

immediate — Если этот режим установлен ‘yes’, входящий вызов немедленно направляется на расширение ‘s’ без тона набора и чтения цифр.

ADSI — Включает или выключает поддержку ADSI. ADSI спецификации системы, аналогичной Caller ID для передачи закодированной информация для аналоговых телефонов. Это позволяет создавать интерактивные меню и обеспечивает доступ к таким услугам, как голосовая почта, посредством текстового интерфейса.

Параметры качества аудио

echocancel включить эхо-подавление. По умолчанию всегда включен.

rxgain — регулировка усиления приемника.
txgain — регулировка усиления передатчика.

Call Logging Options

Эти параметры влияют на записи Call Detail Records Asterisk.
amaflags: Устанавливает AMA флаги, влияющие на классификацию записей в Call Detail Records. Принимает следующие значения:

accountcode: Устанавливает код счета за звонки. Код в счете может иметь любое буквенное или цифровое значение.

Asterisk -vvvvvv команды CLI для тестирования DAHDI

dahdi show status

Команда dahdi show status отобразит состояние установленных плат.

источник

Установка 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:

  1. Увеличение производительности обработки SIP – вызовов.
  2. Снижена нагрузка на CPU и уменьшено потребление памяти в канальном драйвере PJSIP.
  3. Добавление поддержки обмена текстовыми сообщениями, использование Asterisk как коммуникационную платформу широкого профиля.
  4. Повышена производительность обработки видеопотоков и улучшена адаптация к изменению качества канала связи.
  5. В модуль app_queue появилась возможность настройки времени ожидания завершения вызова в привязке к отдельным участникам (агентам), а не только для каждой очереди. Так же добавлена поддержка обработчика predial, вызываемого перед созданием канала вызываемого или вызывающего абонента.
  6. В модуль app_originate добавлена опция `a`, которая информирует о вызове в асинхронном режиме, т.е. управление сразу возвращается в приложение вместо ожидания ответа.
  7. Модуль app_fax в новой версии объявлен устаревшим, вместо него следует использовать res_fax.
  8. Добавлены новые вызовы AMI (Asterisk Manager Interface) в драйвер PJSIP, которые позволяют инспектировать настройки:
  9. PJSIPShowAors для вывода списка AOR (Address-Of-Record);
  10. PJSIPShowAuths для получаения списка секций с параметрами аутентификации;
  11. PJSIPShowContacts для вывода контактов.

Вместе с Asterisk выпущен релиз проекта FreePBX 15, в рамках которого совершенствуется интерфейс для управления Asterisk и готовый дистрибутив для удобного развертывания VoIP – системы. Статья по установке FreePBX 15 так же представлена на нашем сайте.

Перейдем к установке Asterisk 16.

Далее необходимо установить зависимости и утилиты.

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

Необходимые устанавливаемые зависимости и утилиты:

Установка параметра тайм зоны:

Для установки параметром необходимо выполнить команду: tzselect

Перезагружаем систему: 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).

Скачиваем последние версии Asterisk, DAHDI и LibPRI, для этого используем утилитуwget.

Для данной статьи Asterisk 16 устанавливался на виртуальную машину, соответственно без DAHDI и LibPRI, но ниже представлен список полный:

После распаковки необходимо установить пакеты.

Запускаем генератор конфигурации 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 записывается несколько утилит:

Значения ниже 99,9 — плохой результат. Он означает, что DAHDI-устройство вынуждено конкурировать с другими процессами за прерывания и время процессора, что может привести к ухудшению качества звука.

  • dahdi_tool
    Показывает статус карты и ошибки в её работе
  • dahdi_scan
    Показывает сведения о карте
  • dahdi_cfg [options]
    Показывает конфигурацию
  • dahdi_hardware
    Показывает сведения об установленной карте

Первоначально для того, чтобы установился Asterisk 16 без ошибки компиляции необходимо установить libuuid-devel и jansson-devel.

    yum -y install libuu >Выполнение ./config

Если у нас установлена 64-разрядная версия ОС (это можно узнать набрав команду uname -r), то запускаем установку со следущими параметрами:

В случае с 32-разрядной ОС строка для установки выглядит немного иначе:

После выполненной команды должен появится знак [*] Asterisk.

Далее необходимо выполнить make menuselect.

Нам необходим модуль Core Suond Packages, выбираем параметры для русского языка.

Далее выполняем ряд команд: make && make install

После установки копируем файлы с примерами конфигураций в директорию с Asterisk: make samples

Добавляем скрипт запуска Asterisk в /etc/init.d: make config

Для полного запуска системы, сначала необходимо запустить DAHDI, потом Asterisk:

Для перехода в консоль выполним команды asterisk –rvvv

Verbose отвечает за отображение информации о протекающих в Аsterisk процессах: вызовах, их обработке, запуске call файлов, и т.п.
Для включения отображения такой информации есть 2 варианта:

  1. Подключаясь к 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, что необходимо для сборки АТС с аналоговыми и цифровыми устройствами.

источник

Работа с DAHDi

После инсталляции карты, проверяем ее в системе

Компилируем нужный пакет для нашей карты, Парабел, например, тут http://parabel.ru/d/dahdi_2.6.0%2B2.6.0-parabel_2.6.0.tar.bz2

в /etc/dahdi/modules
комментим все модули, вписываем нужный нам, например, quasarm

Указываем зоновую ( региональную) принадженость.

Настраиваем согласование потока между АТС оператора и Asterisk.

span = 1,0,0,CCS,HDB3,CRC4 //Задается источник синхронизации, тип кодирования и необходимость проверки четности
bchan=1-15,17-31 // Задаются тайм-слоты для голоса
dchan=16 //Задаются сигнальные тайм-слоты для данных (0 -й — по умолчанию)
echocanceller=mg2,1-15,17-31 // Указывается тип эхоподавителя и тайм-слоты, на которых он будет задействован.

Теперь чуть более подробно по опциям.

span = , , , , [,crc4]
где
span_num – номер порта E1 ( от 1 до максимального номера порта в плате)
timing – использовать ли порт как источник синхронизации
0 – порт адаптера ведущий по E1
1 и более – порт ведомый по E1 и является одним из источников
синхронизации адаптера. Чем больше число, тем меньше приоритет порта.
LBO – параметр не используется, ставить 0.
Framing – тип телефонной сигнализации, ставить ccs или cas.
Coding – кодирование в линии, может принимать значения ami или hdb3
Crc4 – разрешить проверку и генерацию crc4 ( не обязательный параметр)

service dahdi stop
service dahdi status

Если не выгрузился, необходимо сначала остановить Asterisk:

dahdi_test
dahdi_test
Opened pseudo dahdi interface, measuring accuracy…
99.999% 99.995% 99.999% 99.999% 99.999% 99.999% 99.999%
— Results after 7 passes —
Best: 99.999 — Worst: 99.995 — Average: 99.998506, Difference: 99.998507

Значения не ниже 99,9 — хороший результат. Он означает, что DAHDI-устройство не вынуждено конкурировать с другими процессами за прерывания и время процессора. Значения ниже 99.9 будут приводить к ухудшению качества звука, срыву синхронизации канала E1, скрежету и обрывам голоса.

В случае, если значения ниже 99,9 ( да и просто для профилактики), неободимо убедиться, что цифровая карта не делит прерывания с другими драйверами.

cat /proc/interrupts
[pbx.localdomain

]# cat /proc/interrupts
CPU0 CPU1
0: 1326273128 0 IO-APIC-edge timer
1: 8959 0 IO-APIC-edge i8042
4: 2796129 0 IO-APIC-edge serial
6: 6 0 IO-APIC-edge floppy
7: 2 0 IO-APIC-edge parport0
8: 1 0 IO-APIC-edge rtc
9: 1 0 IO-APIC-level acpi
14: 50338541 0 IO-APIC-edge ide0
50: 0 0 IO-APIC-level uhci_hcd:usb3
58: 7369 23441503 PCI-MSI ahci
114: 1326250778 0 IO-APIC-level wctdm
146: 28024883 0 PCI-MSI eth0
169: 0 0 IO-APIC-level uhci_hcd:usb5
225: 0 0 IO-APIC-level uhci_hcd:usb4
233: 0 0 IO-APIC-level ehci_hcd:usb1, uhci_hcd:usb2
NMI: 0 0
LOC: 1325416311 1325416314
ERR: 0
MIS: 0

wctdm занимает отдельный irq, это правильно
если с делит, то это может сказывать на работе карты и качестве голоса.

Чаще всего наблюдается ситуация, когда драйвера USB и DAHDI занимают одно прервывание. Это нежелательная ситуация, и в ней лучше всего либо разнести драйвера по разным прерываниям, либо отключить USB на уровне BIOS.

тут можно увидеть ошибки в работе карты:

показывать сведения о карте

показывает конфигурационный файл, который используется

затем в /etc/asterisk/chan_dahdi.conf
примерный конфиг:

language=ru
context=from-trunk
signalling=pri_cpe
rxwink=300 ; Atlas seems to use long (250ms ) winks
;
; Whether or not to do distinctive ring detection on FXO lines
;
;usedistinctiveringdetection=yes

usecaller > h > callwaiting=yes
usecallingpres=yes
callwaitingcaller > threewaycalling=yes
transfer=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbr > echotraining=800
rxgain=0.0
txgain=0.0
group=0
callgroup=1
pickupgroup=1
immediate=no
;busydetect=yes
;busycount=5
faxdetect=no

switchtype=euroisdn ; or qsig
immediate=no
context=from-trunk
resetinterval=100000000
signalling=pri_cpe ; or pri_net
group=0
channel ≥1-15,17-31

dahdi restart
dahdi show channels — проверяем что каналы поднялись
dahdi show channel 1

источник

Добавить комментарий

Adblock
detector