Компиляция libpri
Для библиотек libpri не используется программа autoconf для настройки среды сборки или окно выбора компонентов сборки, поскольку они не нужны; таким образом, установка упрощается. libpri применяется различными производителями аппаратных средств мультиплексирования с разделением по времени (Time Division Multiplexing, TDM), но даже если такое оборудование не установлено, эту библиотеку можно компилировать и устанавливать. libpri должна быть скомпилирована и установлена перед установкой Asterisk, поскольку она используется при его компиляции. Вот необходимые команды (вместо версия необходимо указать используемую версию libpri):
Читайте также
15.2. Компиляция для отладки
15.2. Компиляция для отладки Для использования отладчика исходного кода, отлаживаемый исполняемый файл должен быть откомпилирован с опцией компилятора -g. Эта опция заставляет компилятор внедрять в объектный код дополнительные отладочные идентификаторы; то есть
Компиляция
Компиляция Процедура создания большинства приложений является общей и приведена на рис. 2.2. Рис. 2.2. Схема компиляции программыПервой фазой является стадия компиляции, когда файлы с исходными текстами программы, включая файлы заголовков, обрабатываются компилятором
3.8.3. Компиляция ядра
3.8.3. Компиляция ядра При установке из RPM-пакета мы получаем модульное ядро, в котором драйверы устройств могут быть как скомпилированы в одно целое с ядром, так и загружаться отдельно. Такое ядро медленнее в работе, но позволяет обновлять драйверы простой заменой
Компиляция ядра
Компиляция ядра После того как вы сконфигурировали ядро системы, выполнив make xconfig или другую команду, приведенную в начале данной главы, вы должны скомпилировать ядро и установить его модули. Для этого необходимо выполнить следующие команды:# make dep# make bzImage# make modules# make
17.5.6. Компиляция модулей
17.5.6. Компиляция модулей Если вы сконфигурировали какие-то драйверы как отдельные модули (выбирали при конфигурации вариант «m» при ответе на некоторые вопросы), то вы теперь должны еще выполнить команду make modules, а затем еще команду make modules_install. В файле Documentation/modules.txt можно
Компиляция Asterisk
Компиляция Asterisk После компиляции и установки пакетов zaptel и libpri (если они нужны), можно переходить к установке Asterisk. В этом разделе рассматривается стандартная установка и представлены некоторые альтернативные аргументы make, которые могут
Загрузка libpri без использования сценария
Загрузка libpri без использования сценария Библиотеки libpri не требуется загружать, как модули. Asterisk ищет libpri во время компиляции и, если находит их, конфигурируется на использование библиотек
20.5. Компиляция ядра
20.5. Компиляция ядра 20.5.1. Зачем обновлять ядро? Linux развивается быстрее любой другой операционной системы. Регулярно появляются новые версии ядра, реализующие новые функции. Например, едва успел выйти дистрибутив Fedora Core 4 на ядре 2.6.11, а на www.kernel.org уже лежит стабильная
28.2. Компиляция модуля
28.2. Компиляция модуля Компилировать мы будем файл module.c. Для этого понадобится установленный компилятор gcc, заголовочные файлы и исходные тексты ядра. Если вы дочитали книгу до этой главы, то у вас уже должны быть установлены пакеты:1. cpp — препроцессор cpp;2. binutils — набор
3.4.3. Компиляция
3.4.3. Компиляция Как правило, исходные коды программ распространяются в виде архива с «двойным расширением» -.tar.gz. Исходный код принято распаковывать в каталог /usr/src. Поэтому для распаковки архива вам нужно выполнить следующие команды:sucd /usr/srcgunzip архив.tar.gztar xvf
Компиляция программ
Компиляция программ Даже после появления пакетов, которые представляли собой уже скомпилированные программы, компиляция долгое время оставалась и для некоторых остается основным средством установки. Примечание Первые прекомпилированные наборы появились в
Почему компиляция?
Почему компиляция? Читатели, пользовавшиеся языком Бейсик, могут удивиться, зачем столько шагов для того, чтобы выполнить программу. Кажется, что такой способ компиляции требует больше времени (и в некоторых случаях это может быть действительно так). Но, поскольку в
Условная компиляция
Условная компиляция В этом разделе описываются директивы, которые управляют условной компиляцией. Эти директивы позволяют исключить из процесса компиляции какие-либо части исходного файла посредством проверки условий (константных
1.1.2 Компиляция
1.1.2 Компиляция Откуда появились выходной поток cout и код, реализующий операцию вывода ««? Для получения выполняемого кода написанная на С++ программа должна быть скомпилирована. По своей сути процесс компиляции такой же, как и для С, и в нем участвует большая часть входящих
11.3 Условная Компиляция
11.3 Условная Компиляция Командная строка компилятора вида#if выражениепроверяет, является ли результатом вычисления выражения не-ноль. Выражение должно быть константным выражением, котрые обсуждаются в #12. Кроме обычных операций С++ может ипользоваться унарная операция
Libpri asterisk что это
Asterisk — это универсальная программная АТС с открытым исходным кодом. Авторы «Астериск» спроектировали её как модульную коммуникационную платформу, независимую от «телефонных» протоколов и линий связи. Поэтому Asterisk позволяет создавать гибкие многофункциональные и гетерогенные АТС, узлы связи и call-центры, объединяющие традиционную «проводную» телефонию, E1/ИКМ-30 и VoIP.
Asterisk функционирует на нескольких операционных систем, в частности Linux, FreeBSD, Mac OS X, OpenBSD и Sun Solaris. Поддерживает все основные протоколы Voice over IP (IAX TM Inter-Asterisk Exchange, H.323, SIP Session Initiation Protocol, MGCP Media Gateway Control Protocol, SCCP Cisco® Skinny®), может взаимодействовать с массой стандартного телефонного VoIP-оборудования. Используя относительно недорогие аппаратные средства и расширяемый набор управляющих модулей можно легко интегрировать Asterisk с традиционной телефонией (FXO/FXS), а также организовать подключение по E1/ИКМ-30.
На основе Asterisk IP PBX можно построить современную развитую и высоко-интеллектуальную АТС с поддержкой Voice over IP, E1/ИКМ-30, FXO/FXS, TDM over Ethernet. Объединить удаленные офисы, в которых имеется только Интернет-подключение, не прибегая при этом к услугам операторов телефонной связи. Обеспечить гибкий план нумерации, поддержку голосовой почты, интеграцию с существующими сетями IP-телефонии для международных звонков, взаимодействие с традиционными каналами телефонной связи, как с возможностью совершения исходящих вызовов, так и приёмом входящих, с переадресаций согласно плану нумерации.
К недостаткам Asterisk, пожалуй, можно отнести только необходимость освоения технологии до уровня системного администрирования, а часто и «погружения» в тонкости проекта. Поэтому, как правило, Asterisk применяется либо в бюджетных решениях, за счет экономии на стоимости, либо в сложных проектах, когда нет альтернативы со стороны готовых решений «под ключ».
Подключение к E1/ИКМ-30
Взаимодействие Asterisk с традиционным телефонным оборудованием обеспечивается стеком протоколов DAHDI/Zaptel, который представляет собой один из интерфейсных модулей Asterisk с набором драйверов режима ядра, обслуживающих отдельные модели интерфейсных плат-адаптеров. Таким образом реализуется возможность «подключения» Asterisk к инфраструктуре традиционной телефонии.
Наиболее сложный момент при подключении Asterisk к E1/ИКМ-30 — это поддержка протоколов телефонной сигнализации. Необходимые при этом взаимодействие и согласование производятся силами DAHDI/Zaptel-стека в комплекте с другим модулями, на основе общедоступных библиотек кода (libpri, libmcfr2, spandsp и т.д.) и других OpenSource-компонентов. Наиболее востребованной оказалось поддержка диалектов PRI-сигнализаций на базе ITU-T Q.931, что нашло отражение в развитии libpri и DAHDI/Zaptel-стека. Поддержка других сигнальных протоколов, как CCS (по общему каналу), так и CAS (по выделенным каналам) классов, сводится к реализации SS7 и MFC/R2 (модуль Unicall) в Zaptel/Asterisk версий 1.2.x.
Оборудование для DAHDI/Zaptel/Asterisk
| Возможности / Модели | Tau-PCI/32-Lite | Tau-PCI/32 | Tau-PCI/2E1 | Tau-PCI/4E1 | Tau-PCI/E1 интервал обмена 2 мс, модель снята с производства |
| Количество интерфейсов E1/ИКМ-30 | 1 | 2 | 2 | 4 | 2 |
| Количество PRI-потоков для Asterisk | 1 | 1 | 2 | 4 | 2 |
| Аппаратное подавление эха | нет | нет | нет | нет | нет |
| Проброс неиспользуемых канальных интервалов | нет | да | нет | нет | нет |
| Поддержка DACS | запланировано | запланировано | запланировано | запланировано | нет |
| Шина, форм-фактор | PCI 2.1 / 33 МГц, Bus-Master DMA, low-profile | PCI 2.1 / 33 МГц, Bus-Master DMA |
PCI 2.1 / 33 МГц, Bus-Master DMA |
PCI 2.1 / 33 МГц, Bus-Master DMA |
PCI 2.1 / 33 МГц, Bus-Master DMA |
| Поддержка Linux 2.4, Asterisk+Zaptel 1.2.x/1.4.x |
да | да | да | да | да |
| Поддержка Linux 2.6, Asterisk+DAHDI/Zaptel 1.2.x/1.4.x/1.6.x |
да | да | да | да | да |
| Поддержка FreeBSD 6.x, Asterisk+Zaptel 1.4.x |
да | да | нет | нет | нет |
Особенности адаптеров Cronyx
В модуле поддержки DAHDI/Zaptel есть один важный параметр ec-delay позволяющий, использовать встроенный в DAHDI/Zaptel эхоподавитель при больших фиксированных кольцевых задержках в линии связи. Иногда сети связи имеют фиксированную задержку которая превышает возможные пределы эхо подавления, делая его работу невозможным. Используя параметр ec-delay можно сдвинуть момент начала подавления эха, что позволяет компенсировать фиксированную задержку в сети и работать при задержках превышающих пределы встроенного в DAHDI/Zaptel эхоподавителя. Параметр ec-delay эквивалентен понятию tail-displacement, употребляемому в аппаратных эхоподавителях.
Выдержка из руководства по утилите sconfig:
ec-delay=#
При использовании DAHDI/zaptel-протокола задает задержку в миллисекундах (с точностью до 0.125 мс) в подаче переданного в линию E1/ИКМ-30 сигнала на вход обратной связи эхоподавителя. Допускается указание ec-delay=auto, в результате будет установлено адекватное значение исходя из текущего значения параметра qlen. Например: «ec-delay=3.125» или «ec-delay=auto»;
Установка драйверов адаптеров Cronyx для работы с DAHDI/Zaptel+Asterisk
Поддержка DAHDI/Zaptel+Asterisk для ОС Linux 2.6 и 2.4 реализована в штатном комплекте драйверов для ОС Linux, ниже будут даны пояснения по установке и использованию этого комплекта. Аналогичные драйверы для ОС FreeBSD 6.x входят в комплект Zaptel для этой ОС. Поддержка оборудования в ОС FreeBSD в настоящее время осуществляется не силами компании, а волонтерами и энтузиастами FreeBSD, которым мы стараемся помогать. За дополнительной информацией по использованию нашего оборудования с Zaptel/Asterisk в ОС FreeBSD рекомендуем обращаться на страницу проекта FreeBSD zaptel.
- Среда сборки или комплект исходных текстов ядра ОС Linux версии 2.4.x или 2.6.x;
- Исходные тексты DAHDI/Zaptel-стека или соответствующие заголовочные файлы;
- Комплект драйверов;
В целом, схема взаимодействия с Asterisk будет следующей:
Asterisk ↔ Модуль DAHDI/Zap ↔ Драйвер DAHDI/Zaptel (dahdi.ko/zaptel.ko) ↔ Протокол Cronyx для DAHDI/Zaptel (cdahdi.ko/czaptel.ko) ↔ Cronyx binder (cbinder.ko) ↔ Драйвер карты ↔ E1/PRI
Asterisk и DAHDI/Zaptel должны быть установлены в системе. Инструкции по установке и настройке Asterisk и DAHDI/Zaptel смотрите на сайте проекта Asterisk или по ссылкам ниже. Далее, для начала следует распаковать исходные тексты комплекта драйверов. Если Вы уже производили сборку драйверов без поддержки интерфейса DAHDI/Zaptel, то необходимо выполнить команду:
Затем следует сконфигурировать систему сборки под Вашу среду:
./configure —with-zaptel=[путь к заголовочным файлам Zaptel] или
./configure —with-dahdi=[путь к заголовочным файлам DAHDI]
где, —with-dahdi=. / —with-zaptel=. — включает поддержку DAHDI/zaptel/asterisk.org и задаёт месторасположение заголовочных файлов DAHDI/Zaptel-стека. После успешного выполнения ./configure c требуемыми опциями, можно произвести сборку и установку комплекта драйверов командами:
make && sudo make install
Если инсталляция драйверов прошла успешно и были правильно построены зависимости драйверов, то при старте пакета драйверов будет загружен протокольный модуль cdahdi.ko/czaptel.ko (из комплекта драйверов) и модуль dahdi.ko/zaptel.ko (по зависимости) из пакета DAHDI/Zaptel. При сборке модуля czaptel.ko возможно появление предупреждений о неопределенных символах из Zaptel-стека ( zt_receive , zt_transmit и т.д.). Это не является признаком ошибки, и часто является неизбежным, так как модули zaptel.ko и czaptel.ko являются внешними по отношению к системе сборки ядра (см. /usr/src/linux/Documentation/kbuild/modules.txt ).
Далее необходимо произвести конфигурирование адаптеров, линейных интерфейсов и логических каналов с помощью sconfig. Для того, чтобы эти действия производились при старте системы, а также по cronyx.start/cronyx.stop/cronyx.restart , необходимо отредактировать строки, соответствующие каналам в /etc/cronyx.conf . После запуска пакета драйверов Вы получите интерфейсы DAHDI/Zaptel (aka span’ы), дальнейшая настройка которых производится средствами Asterisk/DAHDI/Zaptel.
Важные замечания
Обращаем ваше внимание, что при сборке IP-АТС Asterisk 1.4.x с помощью компилятора GCC версии 4.2.x, при работе получаемого продукта наблюдаются существенные искажения звуковых сигналов. Это является следствием несовместимости программного кода Asterisk 1.4.x с данной версией компилятора GCC, и ни как не связано с продукцией.
Предположительно, причина несовместимости в ошибке в программном коде Asterisk, которая проявляется при более глубокой и интенсивной оптимизации исполняемого кода, реализованной в последних версиях GCC.
Решением проблемы может стать отключение оптимизации при сборке Asterisk:
./configuge make menuselect Oтметить пункт: Compiler Flags -> DONT_OPTIMIZE
Либо использование компилятора GCC ветви 4.1.x. или 4.3.x
Пример настройки Asterisk для использования совместно с E1-L/M-DAHDI
Для корректной работы, необходимо изучить документацию по настройке серверов Asterisk. Ниже приведен упрощенный пример настроек для E1-L/M-DAHDI
Файлы конфигурации Asterisk:
Пример настройки Asterisk для использования совместно с E1-L/M-DAHDI и E1-XL/S-FX
Для корректной работы, необходимо изучить документацию по настройке серверов Asterisk. Ниже приведен упрощенный пример настроек для схемы соединения E1-L/M-DAHDI и E1-XL/S-FX c 4 портами FXS и 4 портами FXO (используется сигнализация «Kewl Start»)
Файлы конфигурации Asterisk:
Пример настройки Asterisk для использования совместно с E1-XL/S-FX и Tau-PCI/32-Lite
Для корректной работы, необходимо изучить документацию по настройке серверов Asterisk. Ниже приведен упрощенный пример настроек для схемы соединения двух офисов, вплоть до примера диалплана и конфигурации iax2 протокола (используется сигнализация «Kewl Start»). Использован E1-XL/S-FX c 12 портами FXS и 4 портами FXO.
Примечание:
В случае использования другого типа вызывного сигнала в линиях FXO или FXS, необходимо определить в chan_dahdi переменную «cadence».
Примечание:
На противоположном сервере в диалплане (extensions.conf) вместо номеров 201-212 соответственно 301-312, вместо шаблонов _3XX — _2XX. IP адреса для IAX2 соответствуют IP адресам двух серверов Астериск (в примере адреса у серверов статические: 192.168.1.1 адрес одного сервера, другого 192.168.1.2).
Пример конфигурационных файлов для Tau-PCI/32 и Tau-PCI/32-Lite
Параметры канала E1: cинхронизация от канала, CRC4, телефонная сигнализация ISDN-PRI, используется весь поток
Пример конфигурационных файлов для Tau-PCI/2E1 и Tau-PCI/4E1
Используются 2 канала E1.
Параметры каналов E1: cинхронизация от канала, CRC4, телефонная сигнализация ISDN-PRI, используется весь поток
Ссылки по проекту Asterisk и VoIP
- http://voip.rus.net
- http://www.asterisk.org
- http://www.voip-info.org
- http://www.asteriskguru.com
- http://asteriskforum.ru
- http://www.asterisk-support.ru
Ссылки по проекту Zaptel
- Расшифровка «цветных» кодов аварии Zaptel.
- Zaptel для FreeBSD
Установка коммуникационной платформы Asterisk
Установка популярной коммуникационной платформы Asterisk с открытым исходным кодом.
Подготовка к установке
Установка Asterisk достаточно проста. Поскольку некоторые пакеты будут собираться с source файлов, то необходимо установить вспомогательные пакеты.
yum groupinstall «Development tools»
yum install wget openssl openssl-devel kernel-devel kernel-headers
Отключаем SELinux:
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
Установка MySQL (MariaDB)
Хранить данные предпочтительно в базе, для этого установим MySQL.
Добавляем репозиторий.
В файл /etc/yum.repos.d/MariaDB.repo вписываем:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
yum -y install MariaDB-client MariaDB-common MariaDB-compat MariaDB-devel MariaDB-server MariaDB-shared
Запускаем и добавляем в автозапуск:
systemctl start mariadb.service
systemctl enable mariadb.service
Не забываем выполнить первоначальную настройку базы данных выполнением команды /usr/bin/mysql_secure_installation .
Загрузка пакетов
Создаем каталог для Asterisk:
mkdir -p /usr/src/asterisk
cd /usr/src/asterisk
Загружаем необходимую версию Asterisk:
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz
Ко всему прочему, нам потребуется библиотека LibPRI и модуль каналов DAHDI (Digium Asterisk Hardware Device Interface):
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
Распакуем загруженные архивы:
tar -xvf asterisk-14-current.tar.gz
tar -xvf libpri-current.tar.gz
tar -xvf dahdi-linux-complete-current.tar.gz
Установка модуля каналов DAHDI
Установка модуля каналов DAHDI должна осуществляться до установки библиотек LibPRI.
cd dahdi-linux-complete-2.11.1+2.11.1/linux
make all
make install
make config
cd dahdi-linux-complete-2.11.1+2.11.1/tools
./configure
make
make install
cd .. && make config
Переименовываем семплы в /etc/dahdi :
mv modules.sample modules
mv system.conf.sample system.conf
Добавляем сервис в автозагрузку и запускаем:
chkconfig dahdi on
service dahdi start
[root@localhost dahdi]# systemctl status dahdi.service
● dahdi.service — LSB: DAHDI kernel modules
Loaded: loaded (/etc/rc.d/init.d/dahdi; bad; vendor preset: disabled)
Active: active (exited) since Вс 2017-02-05 13:49:35 MSK; 2min 16s ago
Docs: man:systemd-sysv-generator(8)
Process: 14067 ExecStart=/etc/rc.d/init.d/dahdi start (code=exited, status=0/SUCCESS)
фев 05 13:49:35 localhost dahdi[14067]: wctdm24xxp: [ OK ]
фев 05 13:49:35 localhost dahdi[14067]: wcaxx: [ OK ]
фев 05 13:49:35 localhost dahdi[14067]: wcfxo: [ OK ]
фев 05 13:49:35 localhost dahdi[14067]: wctdm: [ OK ]
фев 05 13:49:35 localhost dahdi[14067]: wcb4xxp: [ OK ]
фев 05 13:49:35 localhost dahdi[14067]: wctc4xxp: [ OK ]
фев 05 13:49:35 localhost dahdi[14067]: xpp_usb: [ OK ]
фев 05 13:49:35 localhost dahdi[14067]: /usr/share/dahdi/waitfor_xpds: line 106: astribank_is_starting: comma. found
фев 05 13:49:35 localhost dahdi[14067]: Running dahdi_cfg: [ OK ]
фев 05 13:49:35 localhost systemd[1]: Started LSB: DAHDI kernel modules.
Hint: Some lines were ellipsized, use -l to show in full.
Установка библиотек LibPRI
Производим установку библиотек LibPRI:
cd /usr/src/asterisk/libpri-1.6.0
make
make install
Установка сервера Asterisk
Установка Asterisk и конфигурация:
cd /usr/src/asterisk/asterisk-14.2.1
./configure —libdir=/usr/lib64
Если в процессе установки появится ошибка:
configure: error: *** termcap support not found (on modern systems, this typically means the ncurses development package is missing)
То необходимо установить дополнительные пакеты зависимости:
yum install ncurses-devel libuuid-devel libxml2-devel sqlite-devel libss7* libopen*
В случае с ошибкой на JSON необходимо собрать пакет с source-ов.
configure: error: *** JSON support not found (this typically means the libjansson development package is missing)
cd /usr/src/asterisk/ && wget http://www.digip.org/jansson/releases/jansson-2.9.tar.gz
tar -zxf jansson-2.9.tar.gz
./configure -prefix=/usr/ && make clean && make && make install && ldconfig
После этого повторно запускам конфигурацию Asterisk
В случае успешной установки получим следующий вывод:
configure: Menuselect build configuration successfully completed
.$$$$$$$$$$$$$$$=..
.$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 :
Выбираем дополнительные опции и модули Asterisk (опционально)
make menuselect
—> Add-ons (See README-addons.txt)
— Extended —
XXX chan_mobile
[*] chan_ooh323
[*] format_mp3
XXX res_config_mysql
— Deprecated —
XXX app_mysql
XXX cdr_mysql
—> Core Sound Packages
— Core —
[*] CORE-SOUNDS-EN-GSM
[*] CORE-SOUNDS-RU-GSM
—> Extras Sound Packages
— Core —
[*] EXTRA-SOUNDS-EN-GSM
Сохраняем выбор используя ключ S .
После выбора модулей завершаем установку Asterisk.
make
make install
В случае ошибки:
ROLEnc.o ooh323cDriver.o -> chan_ooh323.so
[CC] format_mp3.c -> format_mp3.o
format_mp3.c:39:24: фатальная ошибка: mp3/mpg123.h: Нет такого файла или каталога
#include «mp3/mpg123.h»
Выполняем contrib/scripts/get_mp3_source.sh и повторно запускаем установку.
По завершении установки получим следующее:
+—- 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: +
+ +
+ For generic reference documentation: +
+ make samples +
+ +
+ For a sample basic PBX: +
+ make basic-pbx +
+ +
+ +
+—————— or ———————+
+ +
+ You can go ahead and install the asterisk +
+ program documentation now or later run: +
+ +
+ make progdocs +
+ +
+ **Note** This requires that you have +
+ doxygen installed on your local system +
+——————————————-+
Создаем конфигурационные файлы и семплы Asterisk.
make samples
make config
Добавляем сервис в автозагрузку:
chkconfig asterisk on
Создаем пользователя Asterisk.
useradd -d /var/lib/asterisk asterisk -c «Asterisk»
Задаем права на папки:
chown -R asterisk:asterisk /var/run/asterisk
chown -R asterisk:asterisk /var/log/asterisk
chown -R asterisk:asterisk /etc/asterisk
chown -R asterisk:asterisk /var/lib/asterisk
chown -R asterisk:asterisk /var/spool/asterisk
chown -R asterisk:asterisk /var/www
chown -R asterisk:asterisk /var/lib/php
Для проверки установки выполняем asterisk -vc
Запускаем сервис и переходим в консоль Asterisk:
service asterisk start
asterisk -rvvvv
[root@localhost asterisk]# asterisk -rvvvv
Asterisk 14.2.1, Copyright (C) 1999 — 2016, Digium, Inc. and others.
Created by Mark Spencer [email protected]>
Asterisk comes with ABSOLUTELY NO WARRANTY; type ‘core show warranty’ for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type ‘core show license’ for details.
=========================================================================
Connected to Asterisk 14.2.1 currently running on localhost (pid = 8292)
localhost*CLI> core show version
Asterisk 14.2.1 built by root @ localhost on a x86_64 running Linux on 2017-02-05 11:05:06 UTC
Добавляем правила в iptables.
iptables -A INPUT -p udp -m udp —dport 5060 -j ACCEPT
iptables -A INPUT -p udp -m udp —dport 5061 -j ACCEPT
iptables -A INPUT -p udp -m udp —dport 10000:20000 -j ACCEPT
iptables -A INPUT -p udp -m udp —dport 4569 -j ACCEPT
iptables -A INPUT -p tcp -m tcp —dport 5038 -j ACCEPT
service iptables save
Centos 6: установка Asterisk
Для начала убедимся, что на нашем сервере установлены все свежие обновления:
yum update -y
После этого отключим selinux:
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
reboot
После перезагрузки устанавливаем все необходимые зависимости, которые могут нам понадобиться при установке Asterisk:
yum install -y make wget openssl-devel ncurses-devel newt-devel libxml2-devel kernel-devel gcc gcc-c++ sqlite-devel libuuid-devel
Переходим в директорию с исходниками:
cd /usr/src/
Скачиваем последние версии Asterisk, dahdi и libpri:
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-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
cd /usr/src/libpri* make && make install
и только потом сам Asterisk:
cd /usr/src/asterisk*
Если у нас установлена 64-разрядная версия ОС (это можно узнать набрав команду uname -r)
То запускаем установку со следущими параметрами:
./configure --libdir=/usr/lib64 && make menuselect && make && make install
В случае с 32-разрядной ОС строка для установки выглядит немного иначе:
./configure && make menuselect && make && make install
После установки копируем файлы с примерами конфигураций в директорию с Asterisk:
make samples
Добавляем скрипт запуска Asterisk в /etc/init.d:
make config
service dahdi start
Запускаем сам Asterisk:
service asterisk start
Все. На это установка Asterisk завершена.