Asterisk настройка с нуля ubuntu

Обновлено: 07.07.2024

В этой статье подробно описано как выполняется установка Asterisk 18 на Ubuntu 20.04.

Возможно вас заинтересует:

Установка Asterisk 18 на Ubuntu 20.04

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

Затем установите необходимые пакеты для компиляции Asterisk из исходного кода:

$ sudo apt install wget build-essential git autoconf subversion pkg-config libtool

Установка DAHDI и LibPRI

Выполните следующие команды для компиляции и сборки LibPRI:

Установка Asterisk на Ubuntu

Первое что требуется это клонирование репозитория исходного кода Asterisk (это может занять некоторое время).:

На момент написания этого руководства последней версией Asterisk была 18.7.2, вот ее мы собираемся скомпилировать и установить.

Затем загрузите исходники MP3. Делается это с помощью скрипта оболочки, который необходим для сборки модуля MP3, и используйте файлы MP3 на Asterisk:

Теперь запустите скрипт install_prereq , это требуется для установки необходимых зависимостей (этот шаг также займет некоторое время).:

$ sudo contrib/scripts/install_prereq install

В середине процесса вам будет предложено ввести свой телефонный код:

Установка кода города при установке Asterisk на Ubuntu

Установка кода города при установке Asterisk на Ubuntu

Когда он завершится, вывод должен быть:

Processing triggers for libglib2.0-0:amd64 (2.64.6-1

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

В конце вас встретит красивый логотип ASCII со звездочкой.

Далее выберите модули, которые вы хотите скомпилировать и установить. Чтобы получить доступ к меню, введите следующее:

Установка Asterisk 18 на Ubuntu 20.04

Установка Asterisk 18 на Ubuntu 20.04

Выберите опцию “format_mp3” в меню, чтобы создать модуль MP3. Перейдите с помощью клавиш со стрелками, затем нажмите клавишу Ввод (Enter), чтобы выбрать нужный параметр. Выберите другие опции, которые вы хотите включить. Далее нажмите F12, чтобы сохранить и выйти из меню установки Asterisk.

Выход из меню установки Asterisk

Выход из меню установки Asterisk

Вы должны увидеть такой ответ терминала:

menuselect changes saved!
make[1]: Leaving directory '/home/linoxide/asterisk-18'

Чтобы начать компиляцию исходного кода, выполните команду make:

В зависимости от количества ядер процессора на вашем компьютере, вы можете настроить параметр -j в соответствии с количеством ядер на вашем компьютере, чтобы ускорить время компиляции.

Если все прошло успешно, вы должны получить:

После завершения компиляции, выполните установку Asterisk и его модулей. Для этого введите команду:

Вы можете установить общие файлы конфигурации:

А так же, установите основные файлы конфигурации АТС:

И наконец, выполните следующие действия, чтобы установить сценарий инициализации Asterisk и обновить кэш общих библиотек:

Создание пользователя Asterisk в Ubuntu

Мы создадим нового пользователя, от имени которого будет работать Asterisk. Выполните следующую команду, чтобы создать нового пользователя с именем asterisk :

Результат должен быть следующим:

Adding system user asterisk' (UID 114) . Adding new groupasterisk' (GID 120) …
Adding new user asterisk' (UID 114) with groupasterisk' …
Not creating home directory `/var/lib/asterisk'.

$ sudo nano /etc/default/asterisk

AST_USER="asterisk"
AST_GROUP="asterisk"

Затем добавьте пользователя asterisk в следующие группы:

$ sudo usermod -a -G dialout,audio asterisk

Нам также необходимо изменить владельца всех файлов и папок asterisk, чтобы пользователь Asterisk мог получить доступ к этим файлам:

$ sudo chown -R asterisk: /var//asterisk /usr/lib/asterisk /etc/asterisk

$ sudo chmod -R 750 /var//asterisk /usr/lib/asterisk /etc/asterisk

Запуск Asterisk

Осталось запустить службу Asterisk, делается это следующей командой:

Убедитесь, что Asterisk запущен, подключившись к интерфейсу командной строки (CLI) Asterisk, введя:

Вы должны увидеть результат, аналогичный этому:

Теперь включите запуск службы при старте системы:

$ sudo systemctl enable asterisk

Настройка брандмауэра

$ sudo ufw allow 5060/udp
$ sudo ufw allow 10000:20000/udp

Заключение

Поздравляю! Вы успешно установили и настроили сервер Asterisk в Ubuntu 20.04

Для получения дополнительной информации вы можете посетить официальный веб-сайт Asterisk.

Asterisk - это решение для компьютерной телефонии с открытым исходным кодом, которое поддерживает протоколы VoIP, SIP и PJSIP для операционной системы Linux. Если подключить к компьютеру соответствующее оборудование, то с помощью Asterisk можно создать полноценную станцию ATC. Среди основных возможностей программы можно отметить голосовую почту, конференции, интерактивное голосовое меню и распределение звонков.

В этой статье мы рассмотрим как выполняется установка Asterisk на Ubuntu 20.04. Программу можно установить из официальных репозиториев дистрибутива или же собрать последнюю версию из исходников.

Установка Asterisk из репозиториев

В репозиториях Ubuntu 20.04 на данный момент находится версия 16. Это версия LTS с длительным сроком поддержки. Для установки программы достаточно выполнить команду:

sudo apt install asterisk


После завершения установки можно проверить версию программы:


Как видите, мы получили версию 16. Это LTS версия, но на данный момент уже доступна версия 17. Чтобы её получить придется собрать программу из исходников.

Установка Asterisk на Ubuntu из исходников

Первым делом вам нужно установить зависимости для работы программы:

sudo apt install gnupg2 software-properties-common git curl wget libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev

Дальше мы можем перейти к сборке программы, сначала скачаем исходный код из официального сайта:

Для распаковки исходников наберите:

tar zxvf asterisk-17-current.tar.gz


Дальше нам нужно перейти в папку с исходниками, но мы не знаем точную версию программы. У нас есть мажорная версия 17, но минорную версию мы не знаем. Поэтому используйте такую команду:

Перед тем как выполнить сборку и установку Asterisk на Ubuntu необходимо установить нужные mp3 модули:


Эти команды позволят вам установить некоторые зависимости для проигрывания mp3. Затем установите нужные зависимости для этих модулей:

sudo contrib/scripts/install_prereq install

Выполнение может занять некоторое время, а также вам нужно будет ввести код страны. Дальше подготовим конфигурационные файлы для сборки:


Затем надо немного настроить процесс сборки:

Используйте клавиши со стрелками для перемещения по меню. Для выбора какого-либо пункта используйте Enter. Сначала включите необходимые дополнения на вкладке Add-ons. Например, как на снимке:


Затем перейдите в раздел Core Sound Packages и включите там необходимые пакеты, например:


Аналогично сделайте в разделе Music on Hold:


Когда закончите с настройкой выберите Save & Exit с помощью клавиши Tab:

Осталось выполнить сборку программы:

sudo make install


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

Чтобы установить скрипты инициализации, которые позволят запускать asterisk автоматически, при каждой загрузке выполните:

sudo make config

Затем для обновления кэша библиотек выполните такую команду:

Теперь вы можете запустить сервер asterisk и убедится, что все действительно работает:

sudo systemctl start asterisk


И смотрим информацию про утилиту через терминал:


Если все было сделано правильно и установка Asterisk на Ubuntu с нуля прошла успешно, то все будет работать.

Настройка Asterisk в Ubuntu

Программа запускается от суперпользователя. Но нам нужно, чтобы её можно было запустить от пользователя asterisk, а поэтому нужно выполнить ещё несколько настроек. Так ваша система будет в большей безопасности. Для начала нужно остановить запущенный сервис:

sudo systemctl stop asterisk

Дальше добавьте группу и пользователя asterisk:

sudo groupadd asterisk
sudo useradd -d /var/lib/asterisk -g asterisk asterisk

Дальше нам нужно изменить скрипт инициализации так, чтобы программа запускалась от имени нужного пользователя. Откройте файл /etc/default/asterisk и расскоментируйте такие строки:

sudo vi /etc/default/asterisk


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

sudo chown -R asterisk:asterisk /var/spool/asterisk /var/run/asterisk /etc/asterisk /var//asterisk /usr/lib/asterisk

Также укажем правильные настройки пользователя для полей runuser и rungroup в файле /etc/asterisk/asterisk.conf:

sudo vi /etc/asterisk/asterisk.conf

runuser = asterisk;
rungroup = asterisk;


Когда все будет готово запустите ранее остановленную службу или перезагрузите, если не останавливали:

sudo systemctl start asterisk

sudo asterisk -rvvv


Если пользователь и группа - asterisk, а значит мы сделали все правильно, настройка Asterisk Ubuntu завершена.

Выводы

Вот и все. Установка Asterisk на Ubuntu 20.04 завершена. Теперь вы можете перейти к дальнейшей настройке сети для совершения звонков между вашими абонентами прямо через интернет. В качестве клиентского программного обеспечения можно использовать любую программу, поддерживающую нужные протоколы, например Jitsi или Linphone.

Инструкция позволит быстро познакомиться с сервером Asterisk, выполнив базовые действия по установке и настройке сервера. Нижеописанные действия протестированы на Ubuntu 16.04 и Asterisk 15.

Подготовка сервера

Актуализируем список пакетов:

Установка

Установку можно выполнить с помощью команды apt install asterisk. Но в данной инструкции мы разберем установку путем сборки из исходников.

Рекомендуется установить Asterisk с DAHDI (драйверы плат интерфейсов телефонии) и LibPRI (библиотека для работы с потоковыми TDM-интерфейсами). Сначала необходимо собрать DAHDI, затем LibPRI и только потом — Asterisk.

Устанавливаем пакеты, необходимые для корректной сборки DAHDI и LibPRI:

apt install make gcc

Сборка DAHDI

Распаковываем его и переходим в распакованный каталог:

tar -xvf dahdi-linux-complete-current.tar.gz

Собираем пакет и устанавливаем его:

Выходим из каталога dahdi:

Сборка LibPRI

tar -xvf libpri-current.tar.gz

Собираем и устанавливаем:

Выходим из каталога libpri:

Установка Asterisk

* в моем случае, последняя версия была 15.

Распаковываем архив и переходим в папку, появившуюся после распаковки:

tar -xvf asterisk-*.tar.gz

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

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib64 --with-dahdi --with-pri --with-iconv --with-libcurl --with-speex

** список всех доступных опций можно посмотреть командой ./configure -h.

Мы должны увидеть логотип астериска:

Вызываем оконное меню настройки модулей:

Для большинства случаев, настройки можно оставить по умолчанию. В противном случае рекомендуется изучить опции и выбрать необходимые. После нажимаем Save & Exit.

Затем собираем исходник:

И выполняем установку:

Установим примеры конфигурационных файлов и документацию:

Устанавливаем скрипт инициализации (для автозапуска):

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

Создаем конфигурационный файл для указания дополнительного пути с библиотеками:

Добавляем в него одну строчку:

* это путь до каталога с библиотеками, с которым мы собирали asterisk (опция --libdir).

Настройка и запуск

Открываем конфигурационный файл:

И редактируем следующее:

runuser = asterisk
rungroup = asterisk
defaultlanguage = ru
documentation_language = ru_RU

Создаем системную учетную запись asterisk:

useradd asterisk -m

chown -R asterisk:asterisk /var/run/asterisk

chown -R asterisk:asterisk /etc/asterisk

chown -R asterisk:asterisk /var//asterisk

chown -R asterisk:asterisk /usr/lib64/asterisk

chown -R asterisk:asterisk /var/log/asterisk

Исправляем ошибки и предупреждения. В моем случае были следующие.

Ошибки запуска

No configured users for ARI. ARI предоставляет API для Asterisk REST Interface. В данном примере, отключаем поддержку:

Name or service not known. Если появится такая ошибка, система не может разрешить имя компьютера в IP-адрес. Необходимо правильно настроить DNS или прописать имя компьютера в файл /etc/hosts.

No directory URL or host found. Модуль для работы lpad неправильно настроен или не настроен.
PostgreSQL RealTime: Failed to connect database asterisk on 127.0.0.1. Модуль для работы с СУБД PostgreSQL.
Failed to open /dev/dahdi/transcode: No such file or directory. Ошибку можно увидеть, если нет оборудования DAHDI.

Вышеописанные ошибки возникают из-за включенных, но не используемых модулей. Отключаем:

noload => res_config_ldap.so
noload => res_config_pgsql.so
noload => codec_dahdi.so

Предупреждения при запуске

  • Unable to find a valid server address or name.
  • Process_dahdi: Ignoring any changes to .
  • CEL pgsql config file missing global section.
  • Cel_tds module had config problems; declining load.

Отключаем следующие модули:

noload => res_phoneprov.so
noload => app_dahdiras.so
noload => chan_dahdi.so
noload => res_pjsip_phoneprov_provider.so
noload => cel_pgsql.so
noload => cel_tds.so

Список всех загружаемых модулей можно посмотреть командой:

ls -la /usr/lib64/asterisk/modules/

Разрешаем сервис asterisk и запускаем его:

systemctl enable asterisk

systemctl start asterisk

Заведение первых номеров

Для первой настройки достаточно завести 2 номера с возможностью подключения по SIP.

Создаем правило обработки вызова (контекст). Открываем следующий файл:

И добавляем в него следующее:

[outcaling]
exten => _XXXX,1,Dial(SIP/$,,m)

* создаем контекст с именем outcaling для четырехзначных номеров (XXXX) с вызовом по SIP по внутреннему номеру.

Открываем следующие конфигурационный файл:

И добавляем в него два внутренних номера (extensions):

[1001]
type=friend
regexten=1001
secret=1234
context=outcaling
host=dynamic
callerid="1001" <1001>
disallow=all
allow=alaw
allow=ulaw
language=ru
callgroup=1
pickupgroup=1
qualify=yes
canreinvite=yes
call-limit=4
nat=no

[1002]
type=friend
regexten=1002
secret=1234
context=outcaling
host=dynamic
callerid="1002" <1002>
disallow=all
allow=alaw
allow=ulaw
language=ru
callgroup=1
pickupgroup=1
qualify=yes
canreinvite=yes
call-limit=4
nat=no

  • [1001], [1002] — имена для обозначения номеров.
  • type — типы проверки номеров. Могут быть peer, user или friend. Peer — вызовы сопоставляются с IP-адресами и номерами портов. User — проверка username. Friend — включает возможности peer и user (проверка username и IP-адреса источника) и лучше всего подходит для телефонов и телефонных программ.
  • regexten — добавочный номер. Если не задан, используется имя.
  • secret — пароль для аутентификации.
  • context — контекст или группа правил.
  • host — IP-адрес или имя клиента. Для автоматической регистрации используем dynamic.
  • callerid — идентификатор пользователя при звонке.
  • disallow — запрещает кодеки (задается перед параметром allow).
  • allow — разрешает кодеки. alaw и ulaw — алгоритмы для кодеков g711.
  • language — код используемого языка.
  • callgroup — задает группу устройства (для возможности перехвата).
  • pickupgroup — задает перечень групп, которые можно перехватывать.
  • qualify — включает или отключает периодическую проверку подключенного клиента.
  • canreinvite — включает или отключает прохождение голосового RTP трафика через Asterisk. Устанавливать, только если клиент поддерживает функцию SIP re-invites.
  • call-limit — ограничение количества одновременных вызовов.
  • nat — устанавливается в yes, если клиент находиться за NAT.

systemctl restart asterisk

Проверка

Все, что происходит в Asterisk можно посмотреть в лог-файле командой:

tail -f /var/log/asterisk/messages

Для теста настроенного сервера можно воспользоваться IP-телефоном или софт-фоном на компьютере или телефоне. Например, а качестве SIP-клиента под Windows можно установить бесплатную программу 3CX, для Android — Zoiper.

Подробнее рассмотрим настройку 3CX. Скачиваем ее с официального сайта. Устанавливаем, приняв лицензионное соглашение и нажимая далее. После установки запускаем приложение и на запрос отвечаем, что создадим новый профиль. Нажимаем New и вводим данные для подключения:

Пример настройки подключения к Asterisk в софтфоне 3CX

* настраиваем первый клиент для подключения с логином и паролем 1001 / 1234, второй — 1002 / 1234.


Из-за перехода на удаленку в небольших компаниях часто возникают проблемы с телефонной связью. Обычно такие фирмы сидят в арендованных офисах, а услуги телефонии им оказывает бизнес-центр. О подключении сотрудников из дому придется позаботиться самостоятельно: самый недорогой способ это сделать — развернуть бесплатный сервер VoIP с открытым исходным кодом Asterisk на виртуальной машине. В статье для примера мы использовали Ubuntu 20.04, но этот рецепт подойдет и для других версий популярного дистрибутива — 18.04 и 18.10, а также (в теории, мы не проверяли) для актуальных версий Debian.

Asterisk + Ubuntu + VDS = IP-PBX

Существуют и другие серверы VoIP, при этом некоторые коммерческие продукты ограниченное время можно использовать бесплатно. Считается, что они гораздо проще в настройке, но требуют для работы Windows или установки с собственного дистрибутива Linux. Это сразу отсекает большинство недорогих VDS, а собственное железо с каналом передачи данных или аренда выделенного аппаратного сервера обходятся дороже. Бесплатный Asterisk разворачивается на любой виртуальной машине, к тому же внедрить его не так сложно. Для этого не потребуется даже сборка из исходных текстов. С помощью Asterisk нетрудно наладить телефонную связь между IP-телефонами (аппаратными и программными), а если подключиться к внешнему провайдеру VoIP, то за небольшую сумму денег вы получите полноценную IP АТС (IP-PBX). Если потребность в ней исчезнет, отказаться можно в любой момент — аренда выгоднее вложений в железо и софт.

Установка Asterisk

Для тестов мы взяли недорогую виртуальную машину, но боевая конфигурация зависит от потребностей заказчика. Здесь проявляется главное преимущество VDS: ресурсов можно заказать по минимуму, а потом добавить, если возникнет такая потребность. Обычно для полноценной работы АТС нужно не меньше 2 ГБ оперативной памяти, но если их будет много, отказаться от лишних ресурсов нетрудно.


Инсталляция сервера VoIP на Ubuntu 20.04 — самая простая часть квеста. Необходимый пакеты есть в официальном репозитории дистрибутива и добавляются в систему парой команд. В Ubuntu мы используем механизм повышения привилегий sudo, а в Debian он скорее всего не понадобится, поскольку там практикуются интерактивные сеансы с правами root:


Запуск и остановка службы Asterisk производятся через systemd, а посмотреть ее статус после инсталляции можно с помощью команды systemctl :


Если все прошло удачно, результат будет примерно таким:


Для старта/остановки/перезапуска (например, после изменения конфигурационных файлов) службы в ручном режиме используются следующие команды:


Пока все стандартно, но самая увлекательная часть нашего приключения впереди. Сервер VoIP нужно настроить.

Настройка Asterisk

Файлы конфигурации находятся в каталоге /etc/asterisk, причем их там огромное количество.


Продукт настраивается очень гибко и обладает массой возможностей, но для решения простых задач большинство из них нам не понадобится. В этой статье мы ограничимся правкой двух конфигурационных файлов: /etc/asterisk/sip.conf и /etc/asterisk/extensions.conf. Предварительно стоит сделать их резервные копии:


Переходим к редактированию новых конфигурационных файла (самые любопытные могут изучить резервные копии дистрибутивных, там много интересного):


В файл нужно добавить минимум двух пользователей (внутренних абонентов) с номерами 1001 и 1002, а также задать для них пароли (параметр secret). На вашем сервере внутренние номера и пароли будут другими:

[general]
context=default
allowoverlap=no
udpbindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
transport=udp
srvlookup=yes

[1001]
type=friend
host=dynamic
secret=1234

[1002]
type=friend
host=dynamic
secret=5678

Аналогично делаем новый extensions.conf:


Его содержание будет следующим:

[general]
static=yes
writeprotect=no
priorityjumping=no
autofallthrough=yes
clearglobalvars=no

[default]
exten => 1001,1,Dial(SIP/1001,10)
exten => 1002,1,Dial(SIP/1002,10)

Меняем владельца и права доступа к файлам, поскольку там лежат, в частности, пароли пользователей нашей АТС


Теперь нам остается только перезапустить службу и проверить ее работоспособность:


На этом настройка IP АТС с возможностью телефонной связи между внутренними абонентами завершена. Перейдем к проверке ее работоспособности.

Подключение абонентов

Чаще всего для подключения к виртуальной АТС используют программные телефоны для настольных и мобильных операционных систем. Их существует великое множество, для тестов мы взяли бесплатный Linphone для iOS и Android. При первом запуске нужно будет выбрать опцию «ИСПОЛЬЗОВАТЬ SIP ПОЛЬЗОВАТЕЛЯ», а затем указать в настройках IP нашего сервера, логин и пароль. Учетную запись сервиса Linphone создавать не надо, у нас есть собственный.


После подключения к нашей АТС клиенты готовы общаться между собой. На рабочей станции с Linux и графическим окружением можно использовать тот же самый Linphone, доступный в официальном репозитории дистрибутива:


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

Asterisk - это открытый программный сервер телефонии, значительно превосходящий по функционалу все другие существующие решения для организации офисных АТС, включая самые дорогие отдельные телефонные станции Enterprise класса. В сочетании с необходимым интерфейсным оборудованием, обеспечивающим подключение к компьютера к существующим телефонным сетям, Asterisk может воистину всё, что вы только способны себе представить, и даже больше. И это при том, что сам Asterisk является полностью открытым проектом - вам необходимо всего лишь купить интерфейсные платы и подходящий по мощности компьютер, и вы сможете создать АТС любого уровня и сложности. Компьютер на базе Intel Atom с пассивным охлаждением способен обслужить до 50 внутренних и внешних линий.

Голосовое меню, автоответчики, голосовая почта с доставкой аудиофайлов на email ящики, поддержка всех существующих протоколов обмена голосом и кодеков для них, видеозвонки и передача текстовой информации, возможность коммутации различных каналов, например, SIP и обычного телефона - это далеко не полный список возможностей Asterisk.

Общие вопросы

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

Базовая установка Asterisk состоит из четырёх частей:

Библиотека LibPRI. Эта библиотека предназначена для работы с потоковыми TDM-интерфейсами ISDN: PRI (Primary Rate Interface) и BRI (Basic Rate Interface). Модули поддержки телекоммуникационного оборудования DAHDI.

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

Имейте ввиду, модули и утилиты DAHDI можно загрузить по отдельности, а можно в виде одного пакета DAHDI Complete. При этом в названии пакета DAHDI Complete всегда содержится два номера версии - первый для включённого в него пакета модулей DAHDI Linux, а второй - для DAHDI Tools. Вообще говоря эти номера могут и не совпадать.

Для сборки Asterisk вам потребуется компилятор GCC и некоторые сопутствующие библиотеки.Минимальный же набор необходимого можно поставить командой:

Если вы собираете DAHDI кроме самого Asterisk, то так же понадобятся исходники ядра.

Установка из репозитория

Чтобы поставить всё необходимое достаточно просто запустить скрипт install_prereq из каталога contrib/scripts/ в исходных текстах Asterisk с параметром install . Например, вот так:

FIXME

Однако этот скрипт ставит очень много по сути бесполезного мусора.

Установка из исходников

В статье будет описан процесс установки для сервера 12.04. Начнем с установки необходимых библиотек и дополнительных пакетов.

Качаем исходники DAHDI с утилитами. Распаковываем, и входим в каталог с исходниками.

Качаем LibPRI. Распаковываем, и входим в каталог с исходниками.

Если не планируется использование факсов, этот шаг можно пропустить.

Качаем spandsp. Распаковываем, и входим в каталог с исходниками.

Как было указано выше, берем последнюю LTS версию с официального сайта, а именно, со страницы загрузки всех версий, распаковываем и заходим в каталог исходников. В новых версиях Asterisk необходима установка дополнительных библиотек для работы WebRTC. Для этого выполняем скрипт, входящий в комплект исходников Asterisk.

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

Если вдруг возникнут ошибки, собираем всё ручками.

Жмем Ctrl + D для выхода из рутовой консоли.

Вот теперь можно продолжить установку Asterisk. Выполняем

Если вы делаете установку по ssh, то предварительно должны убедиться, что размер терминала больше, чем 80×25. Здесь необходимо включить нужные модули для компиляции. К примеру, в разделе Add-ons я включил модули format_mp3, app_mysql, cdr_mysql, т.к. дальше планируется установка панели управления FreePBX. В разделе Core Sound Packages включаем CORE-SOUNDS-EN-ALAW, CORE-SOUNDS-EN-GSM, CORE-SOUNDS-EN-G729, CORE-SOUNDS-RU-ALAW, CORE-SOUNDS-RU-GSM, CORE-SOUNDS-RU-G729 (куда же без великого и могучего ).

Кратко поясню, для чего в трех кодеках. Для разных транков и внутренних номеров могут использоваться различные кодеки. Устанавливаемая АТС будет использовать основным кодеком alaw, потому что, к примеру, в Казахстане провайдер Казахтелеком использует для SIP телефонии как раз его и g729. В этом случае, будет использоваться меньше ресурсов сервера для транскодирования аудиопотоков. Внутренние номера так же будут использовать alaw, номера, подключаемые снаружи, через внешний интернет, будут работать на g729a, для уменьшения нагрузки на канал. В качестве терминала могут использоваться смартфоны с установленным SIP клиентом. Устойчивая связь была проверена при использовании этого кодека даже на EDGE, не говоря уже про 3G. Кодек GSM будет использоваться в GSM шлюзах. Если планируется установка FreePBX, необходимо убедиться что для сборки отмечен модуль cdr_odbc.

Далее в разделе Music On Hold File Packages включаем модуль MOH-OPSOUND-WAV просто для того, чтоб он установился. После установки эти мелодии можно будет заменить на свои. Последний раздел Extras Sound Packages. Тут опять же включаем модули для выбранных кодеков ALAW, GSM и G729. Из корневого раздела нажимаем Esc и видим, что нам предложили три варианта выхода. Смело жмем S для сохранения сделанных изменений.

Поскольку мы включили поддежку mp3, то выполняем

И мы уже можем сделать первый запуск нашей станции.

Для того, чтоб не сочинять скрипт автозапуска выполняем

Теперь мы уже можем запустить нашу станцию как демон.

И подключиться к его консоли.

Выйти из консоли можно по Ctrl + Ctrl или набрав quit и нажав Enter . Осталось взять модуль кодека g729 с русской страницы проекта, который больше соответствует конфигурации вашего железа и положить его в /usr/lib/asterisk/modules. Затем следует перезагрузить Asterisk, или загрузить модуль из консоли управления.

Сделаем ему отдельного пользователя, предварительно остановив Asterisk, если запустили, добавим его в нужные группы.

Создадим каталог запуска.

Изменим права на нужные каталоги.

В файле /etc/default/asterisk раскомментируем две строчки. AST_USER=«asterisk» AST_GROUP=«dialout»

Вот теперь можно запустить Asterisk.

Смотрим, от какого пользователя запустился Asterisk.

Спокойно пользуемся дальше.

Вот, собственно, и весь процесс установки этого замечательного продукта.

Постскриптум

Для ознакомления с языком программирования Asterisk, можете почитать книгу Asterisk™ - будущее телефонии. А, изучив язык программирования и структуру конфигурационных файлов Asterisk, вы будете обладать поистине безграничными возможностями «взрослой» АТС в вашем офисе. Хотя, вопреки различным оппозиционно настроенным к этому продукту людям, называть этот продукт «детской АТС» или «недостанцией», по меньшей мере, неправильно. Есть поклонники АТС Panasonis, есть Nortel. У каждой есть свои преимущества. Но нет основного, бесплатности. Тот же Panasonic берет деньги за лицензии на внешние подключения, лицензии на системный телефон, берет еще за множество вещей, которые в Asterisk уже есть. Если у вас в офисе 4-6 телефона и одна внешняя линия, тут, бесспорно, лучше взять недорогую железку, прокинуть провода и настроить АТСку как надо. При количестве телефонов больше 8, лучше уже перейти на цифру. В таких офисах уже есть, как правило, сетевая инфраструктура. Встроить в нее несколько SIP телефонов и станцию будет не сложно. О преимуществах перед аналоговой станцией говорить не приходится. Никаких подвижных контактов, коммутирующих элементов. Никаких плинтов, кроссов, если не используется аналоговая часть. Беспроблемное подключение различных VoIP и GSM шлюзов, интеграция с провайдерами IP телефонии. Объединение офисов в других городах в общее адресное пространство. Автообзвон клиентов, получение и передача данных в различные бухгалтерские и CRM системы. При всем при этом, система достаточно безопасна в пользовании при правильной настройке. Хотелось бы надеяться, что данная статья кому-то поможет установить Asterisk.

FIXME

Звонки с/на Skype

Инструкция написана для Asterisk 1.8 на Ubuntu server 9.04. Задача - привязать к астериску аккаунт скайп, чтобы принимать звонки из скайпа на SIP телефон, и звонить с SIP телефона по скайпу. Для этого существует штатное расширение Asterisk производства Digium, но оно коммерческое и лицензии стоят денег. Однако, существует свободный проект - SipToSis, позволяющий сделать то же самое.

Для запуска Skype в консольном Linux используем Xvfb (X Virtual Frame Buffer) и для настройки Skype с другой машины - x11vnc:

Для работы SipToSis необходима Java версии не ниже 1.5.

Разархивируем в /etc/siptosis и проставим chmod на исполняемый файл:

FIXME

man hier не согласится с этим

Теперь настроим asterisk.

В users.conf добавим:

В extensions.conf добавим

И перезагрузим asterisk.

Теперь правим конфиг SipToSis:

Подключаемся с другой машины (в моем случае, с Windows XP через VNC Viewer), вводим в Skype логин-пароль, отключаем все лишнее.

Если все сделано правильно, SipToSis запустится и попытается подключиться к Skype. Skype выдаст вопрос - разрешить ли подключение. Разрешаем и ставим галку «запомнить».

Проверяем: набираем с подключенного к Asterisk клиента 1001 - мы должны услышать тестовый звонок Skype.

Читайте также: