Сервер Asterisk можно устанавливать на различных дистрибутивах Linux и многих архитектурах ПК. В данной статье мы устанавливаем лабораторный стенд для проведения опытов с Asterisk. Характеристики сервера будут следующими:
- Процессор Intel Core 2 Duo 3 GHz
- ОЗУ: 2 Гб
- Операционная система: Ubuntu 14.04
Основные конфигурации Asterisk содержат в себе три пакета:
- Основная программа Asterisk (asterisk)
- Драйверы телефонии (dahdi)
- PRI-библиотеки (libpri)
Стоит отметить, что если планируется создавать только VoIP-сеть, то достаточно пакета asterisk. Однако мы советует вам установить все три пакета: какие модули активировать можно выбрать позже.
Драйвер dahdi нужен, если используется аналоговое или цифровое оборудование. Сам Asterisk не умеет обмениваться данными с периферийным оборудованием, эту задачу должен выполнять драйвер. Asterisk передает и принимает данные и сигнализацию с помощью dahdi. Схема работы следующая:
сервер Asterisk chan_dahdi Драйвера dahdi Карта Телефон/Коммутатор/Тел. сеть
Библиотека libpri позволяет использовать TDM-интерфейсы ISDN: PRI (Primary Rate Interface) и BRI (Basic Rate Interface). Libpri используется различными производителями оборудования мультиплексирования с разделение каналов по времени (TDM, Time Division Multiplexing).
Необходимые пакеты для Linux
- Для сборки Asterisk необходимо установить набор пакетов build-essetial (содержит в себе g++, gcc, libc6-dev, dpkg-dev, make):
- $ sudo apt-get install build-essential
- Ncurses – это библиотека для управления вводом-выводом на терминал.
- $ sudo apt-get install libncurses5-dev
Libxml2 – библиотека для анализа XML-документов. Данная библиотека нужна, так как телефонные книги в Asterisks имеют расширение .xml.
$ sudo apt-get install libxml2-dev
OpenSSL – криптографический пакет с открытым исходным кодом для работы с SSL/TSL. Позволяет создавать ключи RSA, DH, DSA и сертификаты X.509.
$ sudo apt-get install openssl
$ sudo apt-get install libssl-dev
Получение исходного кода Asterisk
Самый оптимальный вариант – взять исходный код для Asterisk прямо с официального сайта http://www.asterisk.org или на FTP-сервере.
Стоит упомянуть, что существует две основных области разработки Asterisk: ветвь (Branch) и ствол (Trunk). Ствол является наиболее свежей версией, в него добавляются все новые функции. Ветвь, в свою очередь, содержит в себе все исправленные дефекты предыдущих версий. Соответственно для производственной эксплуатации лучше использовать ветвь, так как она является более стабильной и безопасной.
Все манипуляции с Asterisk мы будет проводить в папке /usr/src. Следует помнить что для установки Asterisk необходимо обладать правами администратора.
Получаем самую последнюю версию исходного кода с помощью команды wget:
$ cd /usr/src/
$ wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz
$ wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
$ wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-current.tar.gz
$ wget http://downloads.asterisk.org/pub/telephony/dahdi-tools/dahdi-tools-current.tar.gz
$ wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
Извлекаем исходные коды из архива:
$ tar -zxvf asterisk-14-current.tar.gz
$ tar -zxvf libpri-current.tar.gz
$ tar -zxvf dahdi-linux-current.tar.gz
$ tar -zxvf dahdi-tools-current.tar.gz
$ tar -zxvf dahdi-linux-complete-current.tar.gz
Выполнение этих команд обеспечит извлечение пакетов и исходного кода из архивов в соответствующие папки.
Компиляция Asterisk, LibPRI, DAHDI
Прежде чем начнем компилировать проект, приведу немного теории. Большинство программ перед использованием необходимо компилировать.
Компиляция – это преобразование программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке понятном компьютеру.
Процесс установки разделяется на три этапа:
- Конфигурирование (./configure)
- Сборка (make)
- Установка (make install)
Конфигурирование позволяет выполнить поиск всех зависимостей для программы (библиотек и заголовочных файлов), а также настройку особых параметров и подключение специальных библиотек. Когда команда ./configure обнаружит все, что ей нужно, она создаст Makefiles – файл, необходимый для сборки программы.
Make – является самой важной программой, выполняющей компиляции программы. Для своей работы она использует Makefiles, в котором подробно описана процедура сборки приложения со всеми параметрами.
- Make install – позволяет выполнять установку программы в указанную директорию.
- Прежде всего установим библиотеку PRI и драйверы телефонии dahdi.
- Для установки LibPRI:
$ cd /usr/src/libpri-1.6.0
$ make
$ make install
$ cd ..
Для установки DAHDI:
$ cd /usr/src/dahdi-linux-complete-2.11.1+2.11.1
$ make all
$ make install
$ cd ..
Для установки Asterisk:
$ cd /usr/src/asterisk-14.7.6
$ ./configure
Если у вас вышло такое же окно как и внизу, поздравляю, можно продолжать дальше. В противном случае, при возникновении ошибок, воспользуйтесь данной статьей. Программа .
/configure выполнит поиск всех необходимых пакетов, в случае если какой-то пакет не установлен, она выдаст ошибку.
В коде этой ошибки будет содержаться название пакета, вам останется только его установить командой sudo apt-get install название_пакета.
Следующим командой можно выбрать модули/функции/опции Asterisk, которые вы хотите устанавливать. Если отмечено звездочкой *, значит пункт выбран.
$ make menuselect
- Следующей командой компилируем Asterisk:
- $ make
- В случае удачной компиляции вам предложат установку:
- Выполняем установку Asterisk:
- $ make install
- В самом конце вы должны получить следующее окно:
$ cd ..
Тестируем сервер Asterisk
- После успешной установки сервера, попробуем его запустить. Создаем тестовые конфигурации:
- $ make samples
- Делаем первый запуск нашей станции:
- $ sudo asterisk -vvvcd
- Для того, чтобы не сочинять скрип автозапуска выполняем:
- $ sudo make config
- Теперь можно запустить наш сервер Asterisk как демон:
- $ sudo /etc/init.d/asterisk start
- И подключиться к его консоли:
- $ sudo asterisk -rvvvcd
Поддержите проект
Друзья, сайт Netcloud каждый день развивается благодаря вашей поддержке. Мы планируем запустить новые рубрики статей, а также некоторые полезные сервисы.
У вас есть возможность поддержать проект и внести любую сумму, которую посчитаете нужной.
Источник: https://netclo.ru/ustanovka-servera-asterisk/
Установка Asterisk: пошаговая инструкция
Если Вас интересует профессиональное внедрение системы IP-телефонии Asterisk «под ключ», то обращайтесь к нашим специалистам по телефону 8 (495) 989-85-33 или 8 (800) 333-75-33. Доверьте свою телефонию профессионалам.
Содержание
1. Ручная установка Asterisk 2. Работа с DAHDi 3. Установка YUM 4. Астериск — конфигурационные файлы 5. Установка кодека g729 6. Подключение SIP клиента 7. Полезные команды CLI Asterisk 8. Простой диалплан. Файл extensions.conf
1. Ручная установка Asterisk
Перед началом установки рекомендуется произвести полное обновление операционной системы. Это улучшит стабильность работы и безопасность сервера.
- yum update reboot
- Создаем директорию, в которую поместим исходные коды дистрибутива Asterisk.
- mkdir -p /usr/src/asterisk cd /usr/src/asterisk
Далее загружаем с официального сайта Asterisk текущие пакеты в исходных кодах. Это можно сделать простым способом. В браузере открываем сайт www.asterisk.org, переходим в раздел Download, находим ссылки на требуемые пакеты и правой кнопкой копируем адрес ссылки в буфер обмена. Далее, в консоли сервера используем команду wget и ссылку, ведущую на сайт:
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-11.0.0.tar.gz
- Аналогичным образом выкачиваем все требуемые пакеты:
- 1. Asterisk
- 2. DAHDI
- 3. LibPRI
- Для компиляции исходников потребуется сам компилятор. Устанавливаем его следующей командой (кавычки должны быть те, где на клавиатуре размещена буква «Ё»):
- yum -y install make gcc gcc-c++ kernel-headers-`uname -r` kernel-devel-`uname -r` ncurses-devel newt-devel libtiff-devel libxml2-devel sqlite-devel glibc-headers
- Распаковываем предварительно скачанные с официального сайта пакеты.
tar -xvf asterisk-current.tar.gz tar -xvf dahdi-linux-complete-current.tar.gz
tar -xvf libpri-1.4-current.tar.gz
LibPRI — это OpenSource библиотека, предназначенная для работы с потоковыми TDM-интерфейсами ISDN: PRI (Primary Rate Interface)и BRI (Basic Rate Interface). Первый (PRI) часто используется в России для работы с операторами по каналам Е1.
cd /usr/src/asterisk/libpri-* make clean make
make install
Далее устанавливается драйвера каналов DAHDI. Драйвера предназначены для взаимодествия Asterisk с платами цифровых интерфейсов: E1, FXO, FXS и пр.
- cd /usr/src/asterisk/dahdi-linux-complete* make all make install
- make config
- Далее задаем автоматический запуск службы DAHDI при старте системы:
- chkconfig dahdi on service dahdi start
- ** Если на данном этапе у Вас выдалось сообщение следующего характера:
You do not appear to have the sources for the 2.6.32-220.el6.i686 kernel installed.make[1]: *** [modules] Error 1make[1]: Leaving directory `/usr/src/asterisk/dahdi-linux-complete-2.6.1+2.6.1/linux’
make: *** [all] Error 2
Это может означать, что не стоят исходные коды для ядра. Вернитесь на этап, где требовалось установить исходные коды ядра.
- На этом этапе устанавливаем само телефонное ядро Asterisk.
- cd /usr/src/asterisk/asterisk*. /configure
- Если на этом шаге у Вас отобразится такая заставка, значит все идет по плану:
На этом этапе можно выбрать модули, которые будут входить в состав сборки. Если требуется работа с MySQL или другими компонентами, их рекомендуется установить заранее.
- make menuselect
- Система выбора модулей выглядит следующим образом (хотя, она может быть и на черно-белом фоне):
- Управление:
- Перемещение — стрелками клавиатуры
- Выбор — пробелом
- XXX — модуль не доступен для установки. Необходимо установить недостающие зависимости и повторить все с шага». /configure»
- F12 — сохраняем и выходим
- Далее, оканчиваем установку:
- make make install
- Создаем дефолтные конфиги и образцы.
- make samples make config
- Добавляем Астериск в автозагрузку
- chkconfig asterisk on
Запускаем Астериск консольно, количеством «v» в опции задавая плотность протоколирования (verbosity). Убеждаемся, что Астериск запускается нормально, после чего останавливаем его.
- asterisk -vc stop now
- Запуск будет сопровождаться таким списком загружаемых модулей:
- Теперь Asterisk можно запустить как службу, после чего подключиться к нему штатно в режиме консоли.
- service asterisk start asterisk -rvvvv
2. Работа с DAHDi
После инсталляции карты, проверяем ее в системе
lspci -v
Компилируем нужный пакет для нашей карты, Парабел, например, тут http://parabel.ru/d/dahdi_2.6.0%2B2.6.0-parabel_2.6.0.tar.bz2
- в /etc/dahdi/modules комментим все модули, вписываем нужный нам, например, quasarm
- в /etc/dahdi/system.conf
- Указываем зоновую (региональную) принадженость.
- loadzone=ru defaultzone=ru
- Настраиваем согласование потока между АТС оператора и Asterisk.
- span = 1,0,0,CCS,HDB3,CRC4 //Задается источник синхронизации, тип кодирования и необходимость проверки четности bchan=1-15,17-31 // Задаются тайм-слоты для голоса
- dchan=16 //Задаются сигнальные тайм-слоты для данных (0-й — по умолчанию)
- Теперь чуть более подробно по опциям.
- span = ,,,< framing>,[,crc4] где
- span_num – номер порта E1 (от 1 до максимального номера порта в плате)
- Crc4 – разрешить проверку и генерацию crc4 (не обязательный параметр)
- Делаем рестарт dahdi
- service dahdi stopservice dahdi status
- Если не выгрузился, необходимо сначала остановить Asterisk:
- service asterisk stop
- после
- service asterisk start
- запускаем DAHDI:
- service dahdi start
- Проверка:
echocanceller=mg2,1-15,17-31 // Указывается тип эхоподавителя и тайм-слоты, на которых он будет задействован.
timing – использовать ли порт как источник синхронизации 0 – порт адаптера ведущий по E1 1 и более – порт ведомый по E1 и является одним из источников синхронизации адаптера. Чем больше число, тем меньше приоритет порта. LBO – параметр не используется, ставить 0. Framing – тип телефонной сигнализации, ставить ccs или cas. Coding – кодирование в линии, может принимать значения ami или hdb3
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.
- тут можно увидеть ошибки в работе карты:
- dahdi_tool
- показывать сведения о карте
- dahdi_scan
- показывает конфигурационный файл, который используется
- dahdi_cfg -v
- затем в /etc/asterisk/chan_dahdi.conf примерный конфиг:
- [trunkgroups]
- [channels]
- language=ru context=from-trunk signalling=pri_cpe
- rxwink=300 ; Atlas seems to use long (250ms) winks
- 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
- ==================== В Астериск CLI
- dahdi restart dahdi show channels — проверяем что каналы поднялись dahdi show channel 1
; ; Whether or not to do distinctive ring detection on FXO lines ; ;usedistinctiveringdetection=yes usecallerid=yes hidecallerid=no callwaiting=yes usecallingpres=yes callwaitingcallerid=yes threewaycalling=yes transfer=yes cancallforward=yes callreturn=yes echocancel=yes echocancelwhenbridged=yes echotraining=800 rxgain=0.0 txgain=0.0 group=0 callgroup=1 pickupgroup=1 immediate=no ;busydetect=yes ;busycount=5
3. Установка Asterisk из YUM
Помимо компиляции Asterisk вручную, можно воспользоваться менеджером пакетов YUM, который является штатной утилитой RedHat-based дистрибутивов.
Установку Asterisk мы будем производить из самых «аутентичных» источников — репозитория Asterisk.Org.
Краткая инструкция по работе с данным репозиторием находится здесь: http://www.asterisk.org/downloads/yum
Вам требуется создать новый файл с названием «centos-asterisk.repo» в директории the» /etc/yum.repos.d». В него вы вносите следующую конфигурацию:
[asterisk-tested] name=CentOS-$releasever — Asterisk — Tested baseurl=http://packages.asterisk.org/centos/$releasever/tested/$basearch/ enabled=0 gpgcheck=0
#gpgkey=http://packages.asterisk.org/RPM-GPG-KEY-Digium
[asterisk-current] name=CentOS-$releasever — Asterisk — Current baseurl=http://packages.asterisk.org/centos/$releasever/current/$basearch/ enabled=1 gpgcheck=0
#gpgkey=http://packages.asterisk.org/RPM-GPG-KEY-Digium
Сохраняете данный файл и создаете новый: «centos-digium.repo». Вносите в него следующий текст:
[digium-tested] name=CentOS-$releasever — Digium — Tested baseurl=http://packages.digium.com/centos/$releasever/tested/$basearch/ enabled=0 gpgcheck=0
#gpgkey=http://packages.digium.com/RPM-GPG-KEY-Digium
[digium-current] name=CentOS-$releasever — Digium — Current baseurl=http://packages.digium.com/centos/$releasever/current/$basearch/ enabled=1 gpgcheck=0
#gpgkey=http://packages.digium.com/RPM-GPG-KEY-Digium
- После того как репозитории добавлены, можно приступить к установке пакетов.
- yum install asterisk18 asterisk18-configs asterisk18-voicemail dahdi-linux dahdi-tools
- Запускаем Asterisk и подключаемся к нему:
- service asterisk start asterisk -rvvv
4. Астериск — конфигурационные файлы
Главный конфигурационный файл:
asterisk.conf: Сервер Asterisk берет из этого файла информацию о том, где какие файлы находятся в системе, включая директорию, где лежат все остальные файлы конфигурации. По умолчанию, Asterisk ищет файл asterisk.conf в директории /etc/asterisk, но Вы можете, с помощью параметров запуска Asterisk, задать другое расположение и имя этого файла.
Файлы конфигурации каналов Asterisk:
iax.conf: Файл с конфигурацией канала IAX2 sip.conf: Файл с конфигурацией канала SIP chan_dahdi.conf: Файл с конфигурацией каналов DAHDi
Файлы конфигурации Диалплана (Плана набора):
extensions.conf: Конфигурация плана набора extensions.ael: План набора в новом формате AEL (Asterisk Extensions Language) features.conf: Конфигурация Парковки вызовов, перевода вызова, перехвата и прочих сервисных функций Asterisk.
Файлы конфигурации специфичные для некоторых команд плана набора:
alarmreceiver.conf: Конфигурация для команды AlarmReceiver dundi.conf: Конфигурация, используемая командой DUNDiLookup festival.conf: Конфигурация, используемая командой Festival indications.
conf: Определение тонов для команды Playtones meetme.conf: Файл с конфигурацией конференций для команды MeetMe musiconhold.conf: для команды MusicOnHold queues.
conf: Определение очередей звонков и их параметров для команды Queue voicemail.conf
Источник: https://VoxLink.ru/kb/asterisk-installation/from-source/
Установка Asterisk 14 + Freepbx 13 Ubuntu 16.04
Установка Asterisk 14 и FreePBX 13.
Первоначальная настройка FreePBX с нуля. Кодек Opus. php5.6.
Odbc. Тотальное руководство.
Данное руководство можно использовать, как для установки чистого Asterisk, так и в связке с Freepbx.
При установке системы, на стадии software selection выберите, как минимум openssh.
Если выбран LAMP сервер, или позднее, при установке mysql-server из репозитория, вам будет предложено задать пароль root пользователя MySQL. Если оставить поле пустым, задать пароль можно будет после установки FreePBX 13 командой mysql:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Password');
или утилитой проверки безопасности:
mysql_secure_installation
Задайте пароль root пользователя системы
$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password update successfully
Получите права супер пользователя
$ sudo -i
Сделайте апдейт системы
# apt update && sudo apt upgrade -y
Установите требуемые зависимости
apt install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server
mysql-client bison flex sox libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev
libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion unixodbc-dev
uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev
libsrtp0-dev libspandsp-dev libopus-dev opus-tools libiksemel-dev libiksemel-utils libiksemel3 xmlstarlet
Установка php5.6 вместо php7.0
Ubuntu 16 по умолчанию ставит из репозитория php7.0,
а FreePBX с ним не дружит.
Если вы планируете использовать не чистый Asterisk, надо установить php5.6.
apt install -y software-properties-common python-software-properties
add-apt-repository ppa:ondrej/php
apt update -y
apt-key adv —keyserver keyserver.ubuntu.com —recv-keys
apt install -y php5.6 php5.6-curl php5.6-cli php5.6-mysql php5.6-odbc php5.6-db php5.6-gd php5.6-xml curl libapache2-mod-php5.6
apt install -y php-pear
a2dismod php7.0
a2enmod php5.6
systemctl restart apache2
update-alternatives —set php /usr/bin/php5.6
Перезагрузите сервер, чтобы загрузить свежую версию ядра после апдейта. Если вы уверены, что загружена последняя версия, можно не перезагружать.
reboot
Убедитесь, что mod_rewrite включен, чтобы избежать возможных атак.
a2enmod rewrite
service apache2 restart
Поддержка Console_Getopt
pear install Console_Getopt
libmyodbc ubuntu 16.04
Пакета libmyodbc больше нет в репозиториях Ubuntu начиная с версии Xenial. Скачаем нужный коннектор (требуется регистрация):
https://dev.mysql.com/downloads/connector/odbc/
или по прямой ссылке:
wget https://dev.mysql.com/get/Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.9-linux-ubuntu16.04-x86-64bit.tar.gz
Распакуем:
tar -zxvf mysql-connector-odbc-5.3.9-linux-ubuntu16.04-x86-64bit.tar.gz
И скопируем в директорию /usr/lib/x86_64-linux-gnu/odbc/:
cd mysql-connector-odbc-5.3.9-linux-ubuntu16.04-x86-64bit/lib
cp libmyodbc5* /usr/lib/x86_64-linux-gnu/odbc/
Конфигурацию DSN и odbcinst см. ниже
Asterisk 14 установка
Как использовать данное руководство
Блоки команд с ключом '&&' могут быть скопированы вместе и будут выполняться последовательно. '&&' выполняет переход к следующей команде, при условии успешного выполнения предыдущей. Если вы хотите полностью, пошагово контролировать процесс установки, выполните каждую команду отдельно, без ввода '&&'.
Скачайте исходные файлы
cd /usr/src
wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz &&
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-current.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz &&
git clone https://github.com/akheron/jansson.git &&
wget http://www.pjsip.org/release/2.5.5/pjproject-2.5.5.tar.bz2 &&
echo » ¯\_(ツ)_/¯ »
Скомпилируйте и установите Lame (mp3)
cd /usr/src &&
tar zxvf lame-3.98.4.tar.gz &&
cd lame-3.98.4 &&
./configure &&
make &&
make install &&
echo » ¯\_(ツ)_/¯ »
Скомпилируйте и установите DAHDI и LibPRI
cd /usr/src &&
tar xvfz dahdi-linux-complete-current.tar.gz &&
tar xvfz libpri-current.tar.gz &&
rm -f dahdi-linux-complete-current.tar.gz libpri-current.tar.gz &&
cd dahdi-linux-complete-* &&
make all &&
make install &&
make config &&
cd /usr/src/libpri-* &&
make &&
make install &&
echo » ¯\_(ツ)_/¯ »
Скомпилируйте и установите pjproject
(Требуется для поддержки драйвера SIP канала PjSIP)
Для установки Pjproject и Asterisk 14, рекомендуется использовать Pjproject Bundled Version. В этом случае компиляцию Pjproject из исходников можно пропустить (под спойлером).
Скомпилируйте и установите Asterisk
cd /usr/src &&
tar xvfz asterisk-14-current.tar.gz &&
rm -f asterisk-14-current.tar.gz &&
cd asterisk-* &&
./contrib/scripts/install_prereq install &&
./configure —with-pjproject-bundled —with-crypto —with-ssl=ssl —with-srtp &&
contrib/scripts/get_mp3_source.
sh &&
make menuselect
После ввода команды make menuselect, вам будет предложено выбрать устанавливаемые модули. Большинство требуемых модулей выбираются автоматически. Для поддержки mp3 включите модуль 'format_mp3'.
'res_config_mysql' вынесено в addons по условиям лицензирования.
В разделе Core Sound Packages выберите поддержку русскоязычных файлов (если требуется)
В разделе Extra Sound Packages выберите дополнительные звуковые файлы.
Asterisk 14 + OPUS
Asterisk 14 поддерживает Opus без дополнительных патчей. Зависимости (xmlstarlet) должны быть установлены до конфигурации. В разделе Codec Translators убедитесь, что модуль кодека доступен для компиляции
и отметьте для установки.
Для сохранения нажмите Save & Exit и продолжите установку.
make &&
make install &&
make config &&
ldconfig
Если вы не планируете использовать FreePBX,
команда make basic-pbx установит минимальный начальный набор конфигов Asterisk.
Запуск от имени пользователя 'Asterisk'
Расcкомментируйте в /etc/default/asterisk
AST_USER=»asterisk»
AST_GROUP=»asterisk»
Создайте пользователя Asterisk и задайте права пользователя
useradd -m asterisk &&
chown asterisk. /var/run/asterisk &&
chown -R asterisk. /etc/asterisk &&
chown -R asterisk. /var/{lib,log,spool}/asterisk &&
chown -R asterisk. /usr/lib/asterisk
Перезагрузите сервер и проверьте состояние Asterisk подключившись к консоли
asterisk -vvvr
Asterisk 14.2.0, Copyright (C) 1999 — 2016, Digium, Inc. and others.
Created by Mark Spencer
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.0 currently running on ubuntu (pid = 1269)
ubuntu*CLI>
Убедитесь, что Asterisk запущен под своим пользователем:
ps aux | grep asterisk
asterisk 1269 4.7 11.4 1446068 57504 ? Ssl 07:57 0:07 /usr/sbin/asterisk -U asterisk -G asterisk
FreePBX 13: установка и настройка с нуля
Прежде всего обновите сертификаты сервера:
sudo -u asterisk gpg —refresh-keys —keyserver pool.sks-keyservers.net
Настроим Apache
sed -i 's/(^upload_max_filesize = ).*/256M/' /etc/php/5.6/apache2/php.ini &&
sed -ie 's/;date.timezone =/date.timezone = «Europe/Moscow»/g' /etc/php/5.6/apache2/php.ini &&
cp /etc/apache2/apache2.
conf /etc/apache2/apache2.conf_orig &&
sed -i 's/^(User|Group).*/1 asterisk/' /etc/apache2/apache2.conf &&
sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.
conf &&
systemctl restart apache2
настроим ODBC
cat >> /etc/odbcinst.ini > /etc/odbc.ini Advanced Settings:
echo «russian ru_RU.UTF-8» >> /etc/locale.alias
locale-gen ru_RU
systemctl restart apache2
Country Indications Tone
Выберите тоны КПВ, занято и тд в российском стандарте, если требуется:
Settings > Anvanced Settings — Dialplan and Operational
Обратите внимание на опцию CW Enabled by Default. Можно отключить Call Waiting, по умолчанию, для вновь создаваемых екстеншенов. По умолчанию включено.
Speaking Clock Time Format
Ringtime default
SIP channel driver определяет использование драйверов SIP. По умолчанию и chan_sip и res_pjsip включены, но можно выбрать какой-то один из них.
Установка Asterisk
ubuntu 16, asterisk 14, freepbx 13, установка, настройка, с нуля, odbc, mysql, pjsip, php5.6, opus, srtp, libpri, dahdi, spandsp
Источник: https://asterisk-pbx.ru/wiki/asterisk_install/asterisk14-ubuntu16
Установка Asterisk 13 + FreePBX 12 Ubuntu 14
Сегодня расскажем про установку FreePBX 12 на Ubuntu с использованием Asterisk 13.
Первоначальная настройка Ubuntu
При установке Ubuntu выберите обязательно OpenSSH server и LAMP сервер. Установите дополнительные пакеты на ваше усмотрение.
В ходе установки системы вам будет предложено задать пароль root пользователя MySQL, если вы не уверены, можно отставить пустым. Если пароль задан, он потребуется в дальнейшем для работы с MySQL.
Задайте пароль root пользователя системы
$ sudo passwd rootEnter new UNIX password:Retype new UNIX password:passwd: password update successfully
Переключитесь на root пользователя
$ sudo -i
Сделайте апдейт системы
apt-get update && sudo apt-get upgrade -y
Установите требуемые зависимости
apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php-db php5-gd curl sox libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev libiksemel-dev libiksemel-utils libiksemel3
Перезагрузите сервер
Это требуется чтобы загрузить свежую версию ядра после апгрейда. Если вы уверены что загруженная версия последняя, можно не перезагружаться.
reboot
Установите PearDB
pear uninstall dbpear channel-update pear.php.netpear install -Z db-1.7.14
Установка Asterisk
Скачайте исходные файлы
cd /usr/srcwget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz &&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-13-current.tar.gz &&git clone https://github.com/akheron/jansson.git &&wget http://www.pjsip.org/release/2.2.1/pjproject-2.2.1.tar.bz2
Скомпилируйте и установите Lame (mp3)
cd /usr/src &&tar zxvf lame-3.98.4.tar.gz &&cd lame-3.98.4 &&./configure &&make &&make install
Скомпилируйте и установите DAHDI и LibPRI
cd /usr/src &&tar xvfz dahdi-linux-complete-current.tar.gz &&tar xvfz libpri-1.4-current.tar.gz &&rm -f dahdi-linux-complete-current.tar.gz libpri-1.4-current.tar.gz &&cd dahdi-linux-complete-* &&make all &&make install &&make config &&cd /usr/src/libpri-1.4.* &&make &&make install
Скомпилируйте и установите pjproject
(Требуется для поддержки драйвера SIP канала PjSIP)
cd /usr/src &&tar -xjvf pjproject-2.2.1.tar.bz2 &&cd pjproject-2.2.1 &&CFLAGS='-DPJ_HAS_IPV6=1' ./configure —prefix=/usr —enable-shared —disable-sound —disable-resample —disable-video —disable-opencore-amr &&make dep &&make &&make install
Скомпилируйте и установите jansson
cd /usr/src/jansson &&autoreconf -i &&./configure &&make &&make install
Скомпилируйте и установите Asterisk
cd /usr/src && tar xvfz asterisk-13-current.tar.gz &&rm -f asterisk-13-current.tar.gz &&cd asterisk-* &&./configure &&contrib/scripts/get_mp3_source.sh &&make menuselectПосле ввода команды make menuselect, вам будет предложено выбрать устанавливаемые модули. Большинство требуемых модулей выбираются автоматически. Для поддержки mp3 включите модуль ‘format_mp3’.
В разделе Core Sound Packages выберете поддержку русскоязычных файлов (если требуется)
В разделе Extra Sound Packages выберете дополнительные звуковые файлы. В завершении выберете Save & Exit и продолжите установку.make &&make install &&make config &&ldconfig
Установка и настройка FreePBX
Скачайте и распакуйте FreePBX.
cd /usr/src &&wget http://mirror.freepbx.org/freepbx-12.0.43.tgz &&tar zxvf freepbx-*.tgz &&cd /usr/src/freepbx
Создайте пользователя Asterisk и задайте права пользователя.
useradd -m asterisk &&chown asterisk. /var/run/asterisk &&chown -R asterisk. /etc/asterisk &&chown -R asterisk. /var/{lib,log,spool}/asterisk &&chown -R asterisk. /usr/lib/asterisk
Настроим Apache
sed -i 's/(^upload_max_filesize = ).*/120M/' /etc/php5/apache2/php.ini &&sed -ie 's/;date.timezone =/date.timezone = «Europe/Moscow»/g' /etc/php5/apache2/php.ini &&cp /etc/apache2/apache2.
conf /etc/apache2/apache2.conf_orig &&sed -i 's/^(User|Group).*/1 asterisk/' /etc/apache2/apache2.conf &&sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.
conf &&service apache2 restart
Подготовим MySQL
Требуется создать безопасный пароль для связи FreePBX и MySQL
export ASTERISK_DB_PW=`dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 — | cut -c2-18`
Эта команда сгенерирует 16-тизначный пароль и сохранит значение в переменной {ASTERISK_DB_PW}.
Подготовка базы данных Asterisk в MySQL.
Если вы задали ‘root’ пароль MySQL при установке, добавьте его после ключа -pyourpassword. (mysqladmin -u root -pYOURPASSWORD create asterisk).
mysqladmin -u root create asteriskmysqladmin -u root create asteriskcdrdb
Зададим права на использование БД MySQL.Замените asteriskuser на имя пользователя, которое вам нравится. Например: YOURUSER@localhost. Можно оставить как есть.
mysql -u root -e «GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';»mysql -u root -e «GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';»mysql -u root -e «flush privileges;»
Запустим Asterisk и установим FreePBX.
Если в предыдущем пункте вы задали собственное имя пользователя, замените asteriskuser на него. Например: –username=YOURUSER
./start_asterisk start./install_amp —installdb —username=asteriskuser —password=${ASTERISK_DB_PW}amportal a ma refreshsignaturesamportal a reloadamportal chown
В завершении настроим создадим ссылку на директорию Music On Hold формата mp3
ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
и запустим amportal
amportal start
Поверим состояние Asterisk подключившись к консоли
asterisk -vvrAsterisk 13.0.1, Copyright (C) 1999 — 2014, Digium, Inc. and others.Created by Mark Spencer Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.This is free software, with components licensed under the GNU General PublicLicense version 2 and other licenses; you are welcome to redistribute it undercertain conditions. Type 'core show license' for details.=========================================================================Connected to Asterisk 13.0.1 currently running on ubuntu (pid = 24513)ubuntu*CLI>core restart now
Подключимся к FreePBX
- http://IP.Address.FreePBX.Server/admin
Первым делом, вам будет предложено задать имя пользователя и пароль FreePBXnano +67 /etc/locale.aliasrussian ru_RU.UTF-8
или sed:
sed -i 's/ru_RU.ISO-8859-5/ru_RU.UTF-8/g' /etc/locale.aliaslocale-gen ru_RUservice apache2 restart
На этом установка окончена. Если возникли трудности или вы заметили неточности в статье, просьба указать это в х.
Источник: https://zen.yandex.ru/media/id/5d90d329433ecc00b139a5ba/5d932a7cfe289100b03371cc
Как установить Asterisk on Ubuntu 18.04 Server | Реальные заметки Ubuntu & Mikrotik
Если Вы хотите чтобы Ваш «Умный дом» мог уведомлять Вас звонками, обрабатывать звонки, то Вам необходимо будет на систему которая выбрана серверной, как у меня до этого была Ubuntu Trusty Server, а сейчас Ubuntu 18.
04 Server установить пакет именуемый, как asterisk. Предупреждаю он всемогущ, но порой сложен из-за того, что является консольным, но после нескольких проведенных дней и ночей он поражает своей универсальностью в решении.
Пока выкладывать свои наработки я не буду, сперва приведу их в более читаемый вид, а пока первоначальная заметка, как установить Asterisk на Ubuntu 18.04 Server.
Каждый маленький шаг приближает Вас, а до этого меня к исполнению задуманного, главное не останавливайтесь.
- tips_ubuntu_18_04_cloud_init_uninstall_v1.odt
- ekzorchik@srv-bionic:~$ sudo rm -Rf /var/lib/apt/lists
- ekzorchik@srv-bionic:~$ sudo apt-get update && sudo apt-get upgrade -y
- ekzorchik@srv-bionic:~$ uname -a
Linux srv-bionic 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
- Устанавливаю в систему необходимые пакеты которые нужны для разворачивания asterisk в системе:
- ekzorchik@srv-bionic:~$ sudo apt -y install build-essential wget libssl-dev libncurses5-dev libnewt-dev libxml2-dev linux-headers-$(uname -r) libsqlite3-dev uuid-dev subversion
- ekzorchik@srv-bionic:~$ sudo su —
- root@srv-bionic:~# cd /usr/src
- Скачиваю пакет asterisk с официального сайта в виде пакета исходников чтобы самолично его собрать применительно к моей системе и с моими ключами:
root@srv-bionic:/usr/src# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-15-current.tar.gz
root@srv-bionic:/usr/src# tar zxf asterisk-15-current.tar.gz
root@srv-bionic:/usr/src# cd asterisk-15*/
Устанавливаю поддержку Mp3 файлов:
root@srv-bionic:/usr/src/asterisk-15.4.0# ./contrib/scripts/get_mp3_source.sh
Устанавливаю последние недостающие пакеты:
root@srv-bionic:/usr/src/asterisk-15.4.0# ./contrib/scripts/install_prereq install
Do you want to continue? [Y/n] Y
ITU-T telephone code: 7
Т.к. я скачал исходники пакеты asterisk то их нужно собрать на текущей системе под текущую систему:
root@srv-bionic:/usr/src/asterisk-15.4.0# ./configure
root@srv-bionic:/usr/src/asterisk-15.4.0# make menuselect
root@srv-bionic:/usr/src/asterisk-15.4.0# make
root@srv-bionic:/usr/src/asterisk-15.4.0# make install
root@srv-bionic:/usr/src/asterisk-15.4.0# make samples
root@srv-bionic:/usr/src/asterisk-15.4.0# make config
root@srv-bionic:/usr/src/asterisk-15.4.0# ldconfig
root@srv-bionic:/usr/src/asterisk-15.4.0# cd ~
- По умолчанию сервис asterisk работает из под root пользователя, а это не правильно, изменю чтобы он работал от имени учетной записи:
- root@srv-bionic:~# groupadd asterisk
- root@srv-bionic:~# useradd -d /var/lib/asterisk -g asterisk asterisk
- root@srv-bionic:~# sed -i 's/#AST_USER=»asterisk»/AST_USER=»asterisk»/g' /etc/default/asterisk
- root@srv-bionic:~# sed -i 's/#AST_GROUP=»asterisk»/AST_GROUP=»asterisk»/g' /etc/default/asterisk
- root@srv-bionic:~# sed -i 's/;runuser = asterisk/runuser = asterisk/g' /etc/asterisk/asterisk.conf
- root@srv-bionic:~# sed -i 's/;rungroup = asterisk/rungroup = asterisk/g' /etc/asterisk/asterisk.conf
- root@srv-bionic:~# chown -R asterisk:asterisk /var/spool/asterisk /var/run/asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib/asterisk
- ekzorchik@srv-bionic:~$ sudo asterisk -rv
Asterisk 15.4.0, Copyright (C) 1999 — 2016, Digium, Inc. and others.
- Created by Mark Spencer
- 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.
- =========================================================================
- Running as user 'asterisk'
- Running under group 'asterisk'
Connected to Asterisk 15.4.0 currently running on srv-bionic (pid = 8868)
srv-bionic*CLI>
Установка Asterisk 15 на Ubuntu 18.04 Server amd64 разобрана. Как видно выше все просто, сложное будет потом. Но справиться с возникающими вопросами Вам поможет мой блоги: www.ekzorchik.ru. А пока на этом всё, с уважением автор блога Олло Александр aka ekzorchik.
Источник: https://www.ekzorchik.ru/2018/06/how-to-install-asterisk-on-ubuntu-18-04-server/
Установка и настройка телефонии Asterisk в Linux Ubuntu. Установка и настройка Asterisk
23.02.2012 15:56
Статья, позволяющая начинающим программистам выполнить базовую настройку asterisk
Asterisk является одним из самых распространенных серверов ip-телефонии наряду с такими системами, как Switchwox и 3CX. Большую популярность данная система обрела с распространением в нашей стране качественного интернета, а также множества телефонных провайдеров, предоставляющих телефонные номера в SIP-формате или так называемые SIP-номера.
Одной из таких компаний является Датагруп, которая зарекомендовала себя одним из лидеров рынка услуг связи. С удешевлением SIP-номеров появился смысл использовать современные телефонные системы ip-телефонии взамен старым аналоговым мини-атс. Это связано с широкими функциональными возможностями call-центров на базе Asterisk.
При этом стоимость оборудования и настройка Asterisk практически не уступает в денежных затратах.
Установка asterisk производится путем скачивания и дальнейшей компиляции бесплатно распространяемого исходного кода, разработанного компанией Digium.
Исходники asterisk существуют только для unix-совместимых операционных систем, самыми распространенными из которых являются Linux и FreeBSD. Установка asterisk под Windows возможна только путем реализации виртуальной машины .
Скачать последние версии asterisk можно по следующей ссылке. На данный момент развивается сразу 4 версии этого сервера. Наибольшую стабильность всех модулей имеют версии asterisk 1.4 и asterisk 1.6. С другой стороны, в функциональном плане выгодно отличается версия asterisk 1.
8, в которой есть поддержка множества новых модулей и функций, среди которых можно отметить поддержку протокола SRTP, работу с IPv6 и улучшенные показатели при работе SIP и ISDN.
В данной статье будет рассмотрена установка asterisk v 1.6.22 на Linux Fedora Core.
Для начала установки, скачаем исходники asterisk. Для этого, выполняем в консоли сервера команды:
# wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.2.22.tar.gz
# tar -xzvf asterisk-1.6.2.22.tar.gz
- Перед тем как компилировать исходники, установим все необходимые сопутствующие модули и утилиты:
- # yum install gcc
- # yum install gcc-c++
- # yum install make
- # yum install libxml2-devel
- # yum install ncurses-devel
- После того, как все дополнительные утилиты установлены, производим установку самого asterisk:
# cd asterisk-1.6.2.22
После удачной установки в каталоге /etc/asterisk вы обнаружите конфигурационные файлы asterisk»a. Настройка asterisk осуществляется путем редактирования файлов конфигурации, имеющих очень специфическую структуру и операторы. Основу конфигурации при настройке астериск составляют файлы sip.conf и extensions.conf. Изучив и отредактировав эти файлы, можно добиться правильной работы сервера.
Файл sip.conf включает в себя настройки всех sip-устройств, зарегистрированных на сервере, который в последствии взаимодействуют между собой путем соединения двух и более sip-каналов, благодаря чему инициируется телефонное соединение — то есть звонок.
Пример файла sip.conf:
Qualify=yes nat=no
Defaultexpiry=3600 disallow=all allow=alaw allow=ulaw fromuser=044XXXXXXX host=80.91.169.2 insecure=invite,port secret=xxxxxxxxxxx type=peer username=044XXXXXXX context=incoming language=ru qualify=yes
dtmfmode=auto
- Type=friend host=dynamic insecure=invite,port username=fxo secret=xxxxxxxx context=incoming qualify=yes nat=no canreinvite=no allowtransfer=no dtmfmode=auto disallow=all allow=alaw
- allow=ulaw
- Type=friend regexten=101 secret=xxxxxxxxxxxxx context=internal host=dynamic callerid=»101″ disallow=all allow=alaw allow=ulaw language=ru callgroup=1 pickupgroup=1 qualify=yes canreinvite=yes call-limit=4
- nat=no
В данном примере приведен простейший список sip-устройств. Несложно заметить, что в конфигурации имеются блоки, заключенные в квадратные скобки. Именно такими блоками описывается конфигурация любых устройств (пиров) при настройке Asterisk. Пройдемся вкратце по блокам и по самым основным параметрам.
Блок является обязательным. В него входят настройки и параметры, которые применяются ко всем блокам по умолчанию. Другими словами, если при описании того или иного устройства не указан какой-либо параметр, то Asterisk читает его из этого блока.
Следующие три блока описывают непосредственно sip-устройства. Для наглядности все три устройства имеют разные предназначения. Блок описывает параметры для sip-номера компании Датагруп, блок описывает параметры, для соединения с VOIP-шлюзом, а блок описывает параметры обычного внутреннего sip-устройства, которым может программный или аппаратный ip-телефон.
Пробежимся по основным параметрам sip устройств. Параметр context определяет какой алгоритм действий применять к тому или иному устройству.
Callerid определяет номер и имя пира, которые будут высвечиваться при исходящем звонке с него. Опции disallow и allow определяют, какие кодеки использовать для связи. Опция secret — это пароль для регистрации данного пира.
Пароли желательно составлять достаточно сложными во избежание взломов недоброжелателями.
Файл extensions.conf описывает взаимодействия между контекстами и каналами связи, которых может быть большое множество. По сути, этот файл является основным при настройке asterisk.
Пример файла extensions.conf:
Exten => _XXX,1,Dial(SIP/${EXTEN},120,tT) exten => _XXX,n,Hangup
Exten => _X.,1,Dial(SIP/datagroup/${EXTEN},120,tT) exten => _X.,n,Hangup
Exten => _X.,1,Dial(SIP/101,60,tT) exten => _X.,2,Hangup
Exten => h,1,Hangup
В данном простейшем примере мы имеем два алгоритма действий (контекста) — internal и incoming. Напомним, что привязка к контекстам осуществляется при создании пиров в файле sip.conf и в дальнейшем присваивается уже в extensions.conf при попытке инициации связи с пиром.
Опишем подробнее два контекста. Уже по их названиям становится понятно, что они применяются для алгоритмов внутренних абонентов (internal) и входящих звонков (incoming). Разобраться в конструкции этого файла поможет обобщенный пример, который можно выразить строкой:
Exten => _XXX,n,Command(Options)
Расшифровываются эти опции так:
Exten => _XXX — служебный префикс, с которого начинаются практически все строчки в данном файле. Он описывает представление входящего контекста.
Другими словами, если на этот контекст обратился пир с номером 101, то алгоритм для него должен начинаться с конструкции exten => 101. Префикс поддерживает регулярные выражения и может указываться обобщенно.
Например, exten => _XXX говорит о том, что под данный алгоритм попадают все пиры, которые состоят из трех цифр.
N — номер строчки алгоритма. В любом программном коде имеется последовательность операторов, которые выполняются по очереди. Точно также и в настройках asterisk есть такая последовательность. Единственное отличие — команды, выполняемые asterisk’ом, нумеруются. Обязательным является указание первой сточки явно. Как вы успели заметить, все контексты начинаются со строчек:
Exten => _XXX,1,….. exten => _X.,1,…..
exten => h,1,……
А вот дальнейшие строчки могут нумероваться неявно, то есть так:
Exten => _XXX,n,….. exten => _X.,n,…..
exten => h,n,……
При неявном указании номера строчки, asterisk выполняет их последовательно сверху вниз, как это происходит с любым другим кодом.
Command — команда выполняемая asterisk’ом. Основных команд не так уж много. Для базовой настройки достаточно знать синтаксис команды Dial (позвонить), на примере которой мы рассмотрим оставшиеся опции.
Например: exten => _X.,1,Dial(SIP/101,60,tT) — asterisk наберет внутренний номер 101 и будет пытаться дозвониться до абонента в течении 60 секунд с возможностью перехвата звонка со стороны звонящего и принимающего пиров (опции tT)
exten => _X.,1,Dial(SIP/datagroup/${EXTEN},120,tT) asterisk наберет номер, которые передан в переменной ${EXTEN} с помощью пира datagroup ранее указанного в sip.conf
Первый пример применялся в контексте incoming. Это говорит о том, что все входящие звонки, приходящие на этот контекст перенаправляются на внутреннего абонента, который отвечает на эти звонки. Второй пример в свою очередь показывает, как осуществляется исходящий звонок передавая набранный номер в служебной переменной ${EXTEN}.
Примеры файлов можно напрямую скопировать с этой статьи и вставить в ваши sip.conf и extensions.conf и подредактировать некоторые опции (логины, названия пиров, пароли и т.д). После настройки asterisk, запускаем сервер простой командой:
Дальнейшие действия могут производиться из командной строки астериска, которая запускается командой:
# asterisk -rvvvvd
Попав в консоль вы можете проверить работу вашего сервера. В ней будут отображаться все действия, которые он выполняет.
P.S. В случае, если у вас не получилось настроить сервер, либо же вам нужна более сложная конфигурация, с радостью поможем в настройке asterisk. Наши контакты.
По установке системы.
Наконец тем или иным образом у нас появился установленный Asterisk и FreePBX.
Источник: https://lab-music.ru/ustanovka-i-nastroika-telefonii-asterisk-v-linux-ubuntu-ustanovka-i-nastroika/