Установка из исходников Asterisk 11 на Debian 7.2

Установка из исходников Asterisk 11 на Debian 7.2

Что скачиваем?

В обычной системе устанавливается три компонента:

Asterisk

DAHDI

libpri

Библиотека libpri позволяет связать ваш Asterisk с ISDN. (Подробное описание о ISDN соединениях вы найдете в главе 450.8, "Intro to ISDN PRI and BRI Connections".) Хотя это не всегда нужно но, мы рекомендуем вам устанавливать её на новые системы.

Библиотека DAHDI позволяет Asterisk связываться с аналоговыми и цифровыми телефонами и телефонными линиями, включая соединения с Public Switched Telephone Network, или PSTN. Её желательно установить на новой системе, даже если вы не планируете ближайше время использовать аналоговые или цихровые подключения к вашему Asterisk.

DAHDI

DAHDI это Digium Asterisk Hardware Device Interface, и содержит драйвера и утилиты для аналоговых и цифровых телефных плат, которые производит Digium. Драйвера DAHDI не зависят от Asterisk, и могут быть использованны в других приложениях. DAHDI ранее назывался Zaptel, и появился из проекта Zapata Telephony.

Код DAHDI можно скачать в виде отдельных частей (dahdi-linux с драйверами DAHDI и dahdi-tools с утилитами DAHDI. Их можно скачать вместе одним пакетом с названием dahdi-linux-complete, который содержит как драйвера Linux так и утилиты.

Почему DAHDI разделен на несколько частей?

DAHDI был разделен на две части (драйвера Linux и инструменты), поскольку мы начали портирование драйверов DAHDI для других операционных систем, таких как FreeBSD. В конце концов, мы будем иметь DAHDI-Linux, DAHDI-FreeBSD, и так далее.

Текущие версии libpri, DAHDI, и Asterisk вы можете скачать с

 http://downloads.digium.com/pub/telephony/

Системные требования

Для того, чтобы собрать и установить Asterisk, вам нужно установить компилятор C и ряд системных библиотек.

Компилятор

Компилятор это программа, которая берет исходный код (в случае Asterisk код, написанный на языке программирования C) и превращает его в программу, которая может быть выполнена. По идее любой компилятор C должны скомпилировать код Asterisk, однако мы настоятельно рекомендуем вам использовать компилятор GCC. Это не только самый популярный бесплатный компилятор C в системах Linux и Unix, но это также компилятор, который используют разработчики Asterisk.

Если компилятор GCC еще не установлен ​​на вашем компьютере, просто используйте соответствующую систему управления пакетами на вашей машине, чтобы установить его. Вам также необходимо установить часть C++ в GCC, поскольку некоторые модули Asterisk будет его использовать.

Системные библиотеки

В дополнение к компилятору C, вам нужно установить системные библиотеки. Эти библиотеки использует Asterisk и должны быть установлены до компиляции Asterisk. В большинстве операционных систем, вам нужно установить библиотеку и соответствующий пакет разработки.

Библиотеки разработки

Для большинства операционных систем, пакеты разработки будут иметь окончание -dev или -devel в названии. Например в Red Hat Linux, вам нужно установить оба пакета "openssl" и "openssl-devel".

Список библиотек, которые вам нужно установить включает:

  • OpenSSL
  • ncurses
  • newt
  • libxml2
  • Kernel headers (для сборки драйверов DAHDI)

Мы рекомендуем использовать менеджер пакетов вашей системы для установки этих библиотек до сборки и установки libpri, DAHDI, и Asterisk.

Помощь в нахождени и выборе библиотек

Если вы устанавливаете версию Asterisk 1.6.1.0 или больше, то в комплекте вы имеете скрипт с названием install_prereq.sh в каталоге contrib/scripts. Если вы запустите скрипт install_prereq, то получите точные команды для установки необходимых системных библиотек в вашей операционной системе. Если вы запустите install_prereq install, то он попытается загрузить и установить необходимые компоненты автоматически.

Распаковка исходников

Когда вы скачали исходники, DAHDI, и Asterisk у вас будут файлы с расширением .tar.gz или .tgz. Эти файлы ласково называют “tarballs”. Название происходит от Unix утилиты, которая делает архивы на ленте. Tarball, это коллекция файлов, объединенных в одном файле для удобства копирования, которую затем часто сжимают такими утилитами как GZip.

Чтобы извлечь исходный код из “tarballs”, мы будем использовать команду tar. Приведенные ниже команды предполагают, что вы скачали архивы для libpri, DAHDI и Asterisk в каталог /usr/local/src на своем Linux. (Вы должны войти в систему пользователем root, чтобы иметь возможность записи в этот каталог.) Мы также будем считать, что вы будете замените буквы X, Y, и Z на фактический номер закачанной вами версии архивов. Также обратите внимание, что командная строка может немного отличаться в вашей системе, от той, которую мы приведем здесь. Не волнуйтесь, команды должны работать так же. (по идеее)

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

[root@server ~]# cd /usr/local/src

Затем, давайте распакуем исходные коды каждого архива используя команду tar. Параметры  -zxvf команды tar говорят,  что мы хотим сделать с файлом. Опция z говорит системе сперва разархивировать (unzip) файл, потом опция x говорит, что нужно разпаковать файл из tarball, опция v указывает сообщать о каждом действии (писать имя каждого распакованного файла, и опция f говорит команде tar что мы извлекаем файл из файла, а не из ленты.

[root@server src]# tar -zxvf libpri-1.X.Y.tar.gz
[root@server src]# tar -zxvf dahdi-linux-complete-2.X.Y+2.X.Y.tar.gz
[root@server src]# tar -zxvf asterisk-1.8.X.Y.tar.gz

Вы увидите, что для каждого архива будет создан свой подкаталог, которых содержит распакованные файлы из соответствующего архива. Теперь мы можем собрать и установить каждый из компонентов.

Сборка и установка DAHDI

  • С доступом в Интернет
  • Без доступа в интернет

Давайте установим DAHDI! На Linux, мы будем использовать архив DAHDI-linux-complete, который содержит оба компонента DAHDI Linux драйвера и DAHDI инструменты. Опять же, мы предполагаем, что васпаковываете архив в каталог /usr/local/src, и что вы замените X и Y номерами соответствующих версий.

Исходные коды LibPRI 1.4.13 и старше зависят от исходников DAHDI. Поэтому сперва устанавливайте DAHDI и только потом устанавливайте libPRI.

С доступом в Интернет

[root@server src]# cd dahdi-linux-complete-2.X.Y+2.X.Y
[root@server dahdi-linux-complete-2.X.Y+2.X.Y]# make
[root@server dahdi-linux-complete-2.X.Y+2.X.Y]# make install
[root@server dahdi-linux-complete-2.X.Y+2.X.Y]# make config

Без доступа в Интернет

При установке в системе без доступа в Интернет, используйте несколько дополнительных мер, для сборки DAHDI. Нужно будет скачать файлы firmware для различных модулей VPM и распаковать в каталоге с исходными кодами. Приведенные ниже конкретные файлы, могут иметь другие версии на установки вами системы. Пожалуста перейдите по этой ссылке для просмотра полного списка версий. http://downloads.digium.com/pub/telephony/firmware/releases/

На системе с доступом в Интернет, скачиваем следующие файлы:

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

Теперь добавьте их к системе Asterisk и сохраните их в

/usr/local/src/dahdi-linux-complete-2.X.Y+2.X.Y/linux/drivers/dahdi/firmware/

Теперь мы можем продолжить установку Asterisk используя следующие шаги.

[root@server src]# cd dahdi-linux-complete-2.X.Y+2.X.Y
[root@server dahdi-linux-complete-2.X.Y+2.X.Y]# cd linux/drivers/dahdi/firmware
[root@server firmware]# for tarball in $(ls dahdi-fw-*.tar.gz); do tar -zxf $tarball; done;
[root@server firmware]# cd -
[root@server dahdi-linux-complete-2.X.Y+2.X.Y]# make
[root@server dahdi-linux-complete-2.X.Y+2.X.Y]# make install
[root@server dahdi-linux-complete-2.X.Y+2.X.Y]# make config

Сборка и установка LibPRI

До сборки libpri, вам нужно выполнить Сборку и установку DAHDI. По завершения, мы можем скомпилировать и установить libpri. Напоминиаем, что вам нужно будет заменить символы X, Y, и Z на актуальные числа версий скачаных tarball архивов.

[root@server src]# cd libpri-1.X.Y

Эта команда переходит в каталог с исходниками libpri.

[root@server libpri-1.X.Y]# make

Эта команда компилирует исходный код libpri системные библиотеки.

[root@server libpri-1.X.Y]# make install

Эта команда устанавливает библиотеку libpri в соответствующий каталог системных библиотек

Проверка требований Asterisk

Теперь пришло время скомпилировать и установить Asterisk. Давайте перейдем в каталог который содержит исходные коды Asterisk.

[root@server dahdi-linux-complete-2.X.Y+2.X.Y]# cd /usr/local/src/asterisk-1.8.X.Y

Затем выполним команду ./configure, которая выполнит ряд проверок операционной системы, и подготовит код Asterisk к компиляции на этом конкретном сервере.

[root@server asterisk-1.8.X.Y]# ./configure

Она будет работать в течение нескольких минут, и предупредит вас о отсутствующих системных библиотеках или других зависимостях. Если у вас отсутствуют какие либо пакеты, вы можете их установить и затем снова запустить configure, чтобы эти пакеты были опознаны. Простой способ установить большинство нужных вам пакетов, это использовать скрипт install_prereq находящийся в каталоге contrib/scripts/ исходников вашего Asterisk. Он достаточно прост в использовании, но может не работать на какихто системах. Запустите сценарий без аргументов, чтобы увидеть подсказки.

После завершения ./configure, вы должны увидеть сообщение подобное приведенному ниже. (Очевидно, тип вашего CPU может отличаться от приведенного ниже.)

                .$$$$$$$$$$$$$$$=..      
             .$7$7..        .7$$7:.    
           .$7$7..           .7$$7:.
         .$$:.                 ,$7.7
       .$7.     7$$$$           .$$77
    ..$$.       $$$$$            .$$$7
   ..7$   .?.   $$$$$   .?.       7$$$.
  $.$.   .$$$7. $$$$7 .7$$$.      .$$$.
.777.   .$$$$$$77$$$77$$$$$7.      $$$,
$$$~      .7$$$$$$$$$$$$$7.       .$$$.
.$$7          .7$$$$$$$7:          ?$$$.
$$$          ?7$$$$$$$$$$I        .$$$7
$$$       .7$$$$$$$$$$$$$$$$      :$$$.
$$$       $$$$$$7$$$$$$$$$$$$    .$$$.
$$$        $$$   7$$$7  .$$$    .$$$.
$$$$             $$$$7         .$$$.
7$$$7            7$$$$        7$$$
$$$$$                        $$$
 $$$$7.                       $$  (TM)
  $$$$$$$.           .7$$$$$$  $$
    $$$$$$$$$$$$7$$$$$$$$$.$$$$$$
      $$$$$$$$$$$$$$$$.

configure: Package configured for: 
configure: OS type  : linux-gnu
configure: Host CPU : x86_64
configure: build-cpu:vendor:os: x86_64 : unknown : linux-gnu :
configure: host-cpu:vendor:os: x86_64 : unknown : linux-gnu :

Сохраненная копия данных (Cached Data)

Команда ./configure сохраняет определенные данные, чтобы ускорить процесс, в случае повторного испоьлзования. Чтобы очистить все данные в кэше системы сборки Asterisk, вы можете использовать следующую команду.

[root@server asterisk-1.8.X.Y]# make distclean

Использование Menuselect для выбора опций Asterisk

Следующий шаг в процесе сборки, сказать Asterisk какие модули компилировать и устанавливать, а также какие опции применять компилятору. Все эти настройки контролирются через систему управления с меню под названием menuselect. Чтобы вызвать menuselect, введите:

[root@server asterisk-1.8.X.Y]# make menuselect

Окно терминала

Размер вашего окна терминала должен быть не меньше 80 символов в ширину и 21 строки в высоту, или  menuselect не будет работать. Вместо этого вы получите сообшение о ошибке следующего содержания

Terminal must be at least 80 x 21.

Asterisk 1.8+

Terminal must be at least 80 x 27.

menuselect должен выглядеть как на скриншоте ниже. С левой стороны, у вас есть список категорий, таких как Applications, Channel Drivers, и модули PBX. С правой стороны, вы увидите список модулей, которые соответствуют выбранной категории. В нижней части экрана вы увидите две кнопки. Вы можете использовать клавишу Tab для переключения между различными разделами, а нажимая Enter выбрать или отменить выбор конкретного модуля. Если вы видите [*] рядом с именем модуля, это означает, что модуль был выбран. Если вы видите [XXX], это означает, что выбрать модуль нельзя, так как один из его компонентов отсутствует. В этом случае, вы можете посмотреть в нижней части экрана строку с надписью Зависит от: для описания утеряной зависимости.

Когда вы впервые ставите Asterisk на тестовой системе, вы, вероятно, оставите настройки по умолчанию в menuselect. Если вы создаете промышленную систему, то вы можете не захотеть собирать все модули, а только те, которые будет использовать ваша система.

Простая отладка сбоев Asterisk

Если вы увидите, что ваш Asterisk сбоит, добавьте параметры в menuselect, что бы дать дополнительную информацию для разработчиков Asterisk. Зайдите в menuselect и выберите раздел Compiler Flags (Флаги компилятора), и выбрать настройку DONT_OPTIMIZE. После пересобрать Asterisk, как и раньше. Asterisk станет немного больше, но это обеспечит дополнительную информацию для отладки в случае аварии.

Мы также должны сказать о том, что звуковые файлы тоже выбираются в menuselect.

Когда вы закончите выбирать модули и опции в menuselect, нажмите клавишу F12 для сохранения и выхода или выберите кнопку  “Save & Exit” и нажмите ВВОД.

Компиляция и установка Asterisk

Теперь мы можем скомпилировать и установить Asterisk. Для сборки Asterisk, просто наберите make в командой строке Linux.

[root@server asterisk-1.8.X.Y]# make

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

+--------- Asterisk Build Complete ---------+

+ Asterisk has successfully been built, and +

+ can be installed by running: +

+ +

+ make install +

+-------------------------------------------+

+--------- Asterisk Build Complete ---------+

Это сообщение говорит о том, что нашим следующим шагом будет установка собранного Asterisk и модулей. И чтобы сделать это, используйте команду make install.

[root@server asterisk-1.8.X.Y]# make install

После завершения, Asterisk выдасть следующее сообщение:

+---- Asterisk Installation Complete -------+

+ +

+ YOU MUST READ THE SECURITY DOCUMENT +

+ +

+ Asterisk has successfully been installed. +

+ If you would like to install the sample +

+ configuration files (overwriting any +

+ existing config files), run: +

+ +

+ make samples +

+ +

+-------------------------------------------+

+---- Asterisk Installation Complete -------+

Меры предосторожности

Как уже мы говорили, мы очень настоятельно рекомендуем вам прочитать документацию по безопасности, прежде чем устанавливать Asterisk. Несоблюдение указаниям безопастности может сделать вашу систему уязвимой к ряде случаев связанных с безопасностью и мошенничеством.

Если вы установили Asterisk из архива (как показано выше), информация о безопасности находится в PDF файле с именем asterisk.pdf в подкаталоге исходных кодов  tex/. Если этот файл не существует, пожалуйста, установите приложение rubber в вашей системе, а затем введите:

[root@server asterisk-1.8.X.Y]# make pdf

Установка файлов примеров

Для установки файлов с примерами конфигураций Asterisk, наберите:

[root@server asterisk-1.8.X.Y]# make samples

Все уже существующие образцы файлов, которые были изменены получат расширение .old. Например, если у вас уже есть файл с именем extensions.conf, то он будет переименован в extensions.conf.old и новый пример плана набора будет установлен в качестве extensions.conf. (но архивную копию я бы сделал)

Установка скриптов инициализации

Теперь мы имеем собранный и установленный Asterisk, последним шагом установки будет установка скриптов инициализации, или initscript. Эти скрипты запускают Asterisk, когда ваш сервер загружается и начинает работать, вы также сможете останавливать (stop) или перезапускать (restart) Asteriskl. Для установки initscript, используйте команду make config

[root@server asterisk-1.8.X.Y]# make config

Во время работы Asterisk создаются файлы журналов (logfiles). Рекомендуется установить скрипт создающий правила logrotation для сжатия и ротации файлов, это сохранит место на диске и упростит поиск. Что бы это сделать, выполните команду make install-logrotate.

[root@server asterisk-1.8.X.Y]# make install-logrotate

Проверка установки

До того как мы продолжим, давайте проверим, правильно ли функционирует наша система. Сперва давайте проверим загружаются ли драйвера DAHDI. Чтобы увидить все загруженные модули ядра Linux, вы можете использовать lsmod, и команду grep что бы профильтровать вывод и показать только модули, которые имеют dahdi с своем имени.

[root@server asterisk-1.8.X.Y]# lsmod | grep dahdi

Если команда ничего не вернет, значит DAHDI не запустился. Можно попробовать запустить DAHDI выполнив:

[root@server asterisk-1.8.X.Y]# /etc/init.d/dadhi start

Различные методы запуска Initscripts

Разные дистрибутивы Linux имеют различные методы запуска initscripts. Большинство основанных на Red Hat дистрибутивов ( таких как openSuSE, Red Hat Enterprise Linux, Fedora, и CentOS) позволят запустит выполнив:

[root@server asterisk-1.8.X.Y]# service dahdi start

Дистрибутивы основанные на Debian (такие как Ubuntu) имеют аналогичную (редко используемую) команду:

[root@server asterisk-1.8.X.Y]# invoke-rc.d dahdi start

Если DAHDI работает, то вывод lsmod | grep dahdi должен быть похож на приведенный ниже пример. (Некоторые детали могут отличаться, это зависит от того какие модули DAHDI были собраны и пр.)

[root@server asterisk-1.8.X.Y]# lsmod | grep dahdi

dahdi_dummy 4288 0

dahdi_transcode 7928 1 wctc4xxp

dahdi_voicebus 40464 2 wctdm24xxp,wcte12xp

dahdi 196544 12 dahdi_dummy,wctdm24xxp,wcte11xp,wct1xxp,wcte12xp,wct4xxp

crc_ccitt 2096 1 dahdi

Теперь, когда DAHDI работает, вы можете запустить dahdi_hardware и получить список всех DAHDI устройств в вашей системе. Вы также можете запустить утилиту dahdi_tool и увидеть все DAHDI устройства, и их текущее состояние.

Для проверки, работает ли Asterisk, вы можете использовать Asterisk initscript.

[root@server asterisk-1.8.X.Y]# /etc/init.d/asterisk status

asterisk is stopped

Для запуска Asterisk, мы используем снова initscript, указав действие start:

[root@server asterisk-1.8.X.Y]# /etc/init.d/asterisk start

Starting asterisk:

Когда Asterisk запущен, он работает в фоновом режиме (или как демон), так что вы, как правило, не увидите ничего в командной строке. Мы можем проверить состояние Asterisk и убедиться, что он работает, с помощью команды показаной ниже. (Идентификатор процесса или PID, очевидно, будет отличаться в вашей системе.)

[root@server asterisk-1.8.X.Y]# /etc/init.d/asterisk status

asterisk (pid 32117) is running...

Вот так вы можете собрать и установить Asterisk, DAHDI и libpri из исходных кодов.

Далее приведено описание установки Asterisk из исходных кодов на Debian позаимствованное у

http://unclejoda.blogspot.com/2012/10/asterisk-18-ubuntu-1204.html с небольшими вариациями:

Будем считать что вы уже

- установили базовую систему (я устанавливаю без X)

- прописали сетевые настройки (IP адрес, маску MASK, ROUTE...) и система имеет выход в Интернет.

- настроили NTP (систему синхронизации времени)

- установили и настроили SSH

- знаете и можете настроить IPTABLES

Первым делом обновим систему

apt-get update && apt-get upgrade

Проверим, и при необходимости установим новые файлы заголовков для ядра

apt-get install linux-headers-`uname -r`

Устанавливаем пакеты для компилирования Asterisk:

Компилятор

apt-get install build-essential

Библиотеки:

apt-get install libxml2-dev libncurses5-dev libreadline-dev libreadline6-dev

Всё для Google Talk

apt-get install libiksemel-dev

Поддержка формата ogg Vorbis

apt-get install libvorbis-dev

Необходимое для SIP

apt-get install libssl-dev

Поддержка кодека speex

apt-get install libspeex-dev libspeexdsp-dev

Поддержка MySQL

apt-get install libmysqlclient-dev

Поддержка SQLite3

apt-get install libsqlite3-dev sqlite3

И еще несколько дополнений

apt-get install mpg123 libmpg123-0 sox openssl wget subversion openssh-server

Или всё разом:

apt-get install linux-headers-`uname -r` build-essential libxml2-dev libncurses5-dev libreadline-dev libreadline6-dev \

libiksemel-dev libvorbis-dev libssl-dev libspeex-dev libspeexdsp-dev libmysqlclient-dev libsqlite3-dev sqlite3 \

mpg123 libmpg123-0 sox openssl wget subversion openssh-server

Переходим в директорию /usr/src и начинаем сборку:

cd /usr/src

Открываем в броузере ссылку http://downloads.asterisk.org/pub/telephony/ и внимательно изучаем содержимое. Нам понадобятся три каталога: libpri, dahdi-linux-complete и asterisk

Скачиваем DAHDI для конференций MeetMe (даже если у вас нет оборудования для DAHDI)

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.6.1+2.6.1.tar.gz

tar -zxvf dahdi-linux-complete-2.6.1+2.6.1.tar.gz

cd ./dahdi-linux-complete-2.6.1+2.6.1

make

make install

cd ..

Теперь переходим в libpri и выбираем ту версию которая нам интересна (принципиально можно пропустить установку libpri, но разрабочики Asterisk рекомендуют это сделать, … а вдруг пригодиться) скачиваем и устанавливаем.

wget  http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4.14.tar.gz

tar -zxvf libpri-1.4.14.tar.gz

cd ./libpri-1.4.14

make

make install

cd ..

Переходим по ссылке http://downloads.asterisk.org/pub/telephony/asterisk/releases/ и выбираем то что мы хотим установить (выбор остаеться за каждым согласно его предпочтеният и текущей коньюктуре)

Скачиваем Asterisk

wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-x.x.x.x.tar.gz

tar -zxvf asterisk-x.x.x.x.tar.gz

cd ./asterisk-x.x.x.x

Возможно первыми нужно скачать исходники Asterisk и запустить скрипт install_prereq.sh в каталоге contrib/scripts для проверки нужных библиотек в системе. Это ускорит процесс установки. После установить DAHDI и libpri, и только потом вернуться в каталог с исходниами Asterisk и продолжить его установку.

Добавляем поддержку Mp3 и производим конфигурирование установщика

./contrib/scripts/get_mp3_source.sh

./configure

Если все хорошо — мы получим лого Asterisk

Устанавливаем необходимые компоненты Asterisk

make menuconfig

Описание что и зачем включать отдельная большая глава и будет добавлена позже ( может быть )

Создаем исполняемые файлы Asterisk

make && make install

Копируем первичный конфиг в /etc/asterisk (учтите, если что то было то оно будет безвозвратно утряно)

make samples

Устанавливаем стартовые скрипты для запуска Asterisk при загрузке

make config

Добавляем поддержку 3G-модемов марки Huawei

wget https://asterisk-chan-dongle.googlecode.com/files/chan_dongle-1.1.r14.tgz

tar xvzf chan_dongle-1.1.r14.tgz

cd chan_dongle-1.1.r14

./configure

make

make install

cp /etc/dongle.conf /etc/asterisk

Если в друг :) при make появилась ошибка,  то рекомендую попробовать второй способ.

Нагуглил тут: www.ra1aie.ru/?p=1215

Сабж не компилится с 11 версией asterisk. Симптомы:

In file included from app.c:21:0:

/usr/include/asterisk/version.h:1:2: error: #error "Do not include 'asterisk/version.h'; use 'asterisk/ast_version.h' instead."

app.c: In function 'app_register':

app.c:162:3: warning: passing argument 2 of 'ast_register_application2' from incompatible pointer type [enabled by default]

In file included from app.c:20:0:

/usr/include/asterisk/module.h:458:5: note: expected 'int (*)(struct ast_channel *, const char *)' but argument is of type 'int (*)(struct ast_channel *, void *)'

make: *** [app.o] Error 1

Решение:

0. Переходим в каталог /usr/src

cd /usr/src

1. Качаем пропатченный исходник

wget https://github.com/jstasiak/asterisk-chan-dongle/archive/asterisk11.zip

2. Ставим autoconf и automake (из под root)

apt-get install autoconf automake

3. Разархивируем исходник, переходим в его папку и выполняем одну за другой команды:

aclocal && autoconf && automake -a

4. Ставим chan_dongle как обычно: ./configure, make, make install

./configure

make

make install

5. Копируем дефолтный конфиг из /etc/chan_dongle.conf в папку с конфигом астериска.

cp /etc/dongle.conf /etc/asterisk/dongle.conf

P.S. По описаниям это работает с 11 версией Asterisk, но не работает с 12.

Ну, а дальше - настроить конфиг /etc/asterisk/dongle.conf:

audio=/dev/ttyUSB1 ?

data=/dev/ttyUSB2 ? ¶