Установка и базовая настройка Asterisk на Ubuntu: первые SIP-номера
Asterisk — открытая платформа IP-телефонии (PBX), позволяющая поднять собственную АТС на Linux. В этой инструкции — сборка из исходников, настройка и заведение первых SIP-номеров.
Пример актуален для Asterisk 22 LTS и Ubuntu 22.04/24.04/26.04. Вместо устаревшего chan_sip используется chan_pjsip.
Подготовка сервера
apt-get update
apt install chrony
systemctl enable chrony --now
Для синхронизации времени используем chrony (ntpdate устарел и удалён из современных дистрибутивов).
Установка
Можно поставить из репозитория (apt install asterisk), но разберём сборку из исходников.
Для работы с аппаратными платами телефонии рекомендуются DAHDI (драйверы) и LibPRI (для потоковых TDM-интерфейсов). Порядок сборки: DAHDI → LibPRI → Asterisk.
apt install make pkg-config linux-headers-$(uname -r)
Сборка DAHDI
wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
tar -xvf dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-*/
make
make install
make config
cd ..
Сборка LibPRI
wget https://downloads.asterisk.org/pub/telephony/libpri/libpri-1-current.tar.gz
tar -xvf libpri-*.tar.gz
cd libpri-*/
make
make install
cd ..
Установка Asterisk
Скачиваем актуальную версию:
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22-current.tar.gz
tar -xvf asterisk-*.tar.gz
cd asterisk-*
Ставим зависимости:
./contrib/scripts/install_prereq install
./contrib/scripts/install_prereq install-unpackaged
make distclean
./contrib/scripts/get_mp3_source.sh
Конфигурируем:
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib64
--with-dahdi --with-pri --with-iconv --with-libcurl --with-speex
где:
--with-dahdi— драйверы DAHDI;--with-pri— библиотека PRI;--with-iconv— конвертация кодировок (нужно для русских символов);--with-libcurl— извлечение данных через HTTP;--with-speex— дополнительный VBR-кодек.
Полный список опций — ./configure -h.
Выбор модулей (можно оставить по умолчанию, Save & Exit):
make menuselect
Сборка и установка:
make
make install
make samples
make progdocs
make config
make install-logrotate
Создаём файл с путём к библиотекам:
vi /etc/ld.so.conf.d/asterisk.conf
/usr/lib64
Путь совпадает с опцией --libdir при конфигурации.
ldconfig
Настройка и запуск
vi /etc/asterisk/asterisk.conf
runuser = asterisk
rungroup = asterisk
defaultlanguage = ru
documentation_language = ru_RU
Создаём системного пользователя и задаём права:
useradd asterisk -m
chown -R asterisk:asterisk /var/run/asterisk
chown -R asterisk:asterisk /etc/asterisk
chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk
chown -R asterisk:asterisk /usr/lib64/asterisk
chown -R asterisk:asterisk /var/log/asterisk
Проверяем конфигурацию:
asterisk -c
Ошибки запуска
- No configured users for ARI. Отключаем ARI:
vi /etc/asterisk/ari.conf
enabled = no
- Name or service not known. Система не разрешает имя компьютера — настройте 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. Нет оборудования DAHDI.
Причины — включённые, но неиспользуемые модули. Отключаем:
vi /etc/asterisk/modules.conf
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/
Запускаем сервис:
systemctl enable asterisk
systemctl start asterisk
Заведение первых номеров
Для первой настройки достаточно двух SIP-номеров.
Создаём контекст обработки вызова:
vi /etc/asterisk/extensions.conf
[outcalling]
exten => _XXXX,1,Dial(PJSIP/${EXTEN},,m)
Контекст outcalling для четырёхзначных номеров (XXXX) с вызовом по PJSIP.
Настраиваем SIP через PJSIP. В современных версиях Asterisk chan_sip удалён, поэтому используем pjsip.conf:
vi /etc/asterisk/pjsip.conf
[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0:5060
[1001]
type=endpoint
context=outcalling
disallow=all
allow=alaw,ulaw
auth=1001
aors=1001
callerid="1001"
[1001]
type=auth
auth_type=userpass
username=1001
password=1234
[1001]
type=aor
max_contacts=4
[1002]
type=endpoint
context=outcalling
disallow=all
allow=alaw,ulaw
auth=1002
aors=1002
callerid="1002"
[1002]
type=auth
auth_type=userpass
username=1002
password=1234
[1002]
type=aor
max_contacts=4
Секции с одинаковым именем ([1001]) но разными type — стандартный синтаксис PJSIP: endpoint, auth, aor описывают один и тот же номер.
Ключевые параметры:
type— тип объекта PJSIP (endpoint/auth/aor/transport);context— контекст (группа правил обработки вызова);disallow/allow— запрет и разрешение кодеков (alaw,ulaw— G.711);password— пароль аутентификации;max_contacts— лимит одновременных регистраций;callerid— идентификатор звонящего.
systemctl restart asterisk
Проверка
Логи:
tail -f /var/log/asterisk/messages
Для проверки статуса абонентов:
asterisk -r
> pjsip show endpoints
Для теста используйте IP-телефон или софтфон: Zoiper (Windows/Android/iOS), Linphone и др. В настройках клиента указываем сервер (IP Asterisk), логин/пароль (1001/1234 и 1002/1234).
Пробуем позвонить с одного номера на другой.
Тонкости и подводные камни
chan_sipудалён — в Asterisk 22 используйте толькоchan_pjsipиpjsip.conf.- Порядок сборки — DAHDI → LibPRI → Asterisk; иначе зависимости не соберутся.
--libdirиld.so.conf.d— если библиотеки в нестандартном пути, обязательно добавьте его вld.so.conf.d/asterisk.confи выполнитеldconfig.- Пользователь
asterisk— все каталоги АТС должны принадлежать ему, иначе сервис не стартует. - Неиспользуемые модули — отключайте через
noload, чтобы не засорять логи ошибками. - Брандмауэр — откройте SIP (5060/tcp,udp), RTP (10000–20000/udp) и веб-порты при необходимости.
- Безопасность — не оставляйте простые пароли; ограничивайте доступ к SIP по IP.
Шпаргалка
apt install make pkg-config linux-headers-$(uname -r)
# DAHDI -> LibPRI -> Asterisk
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22-current.tar.gz
./contrib/scripts/install_prereq install
./configure --with-dahdi --with-pri --with-iconv --with-libcurl --with-speex
make && make install && make samples && make config
useradd asterisk -m
chown -R asterisk:asterisk /etc/asterisk /var/{lib,log,spool}/asterisk
systemctl enable asterisk --now
# pjsip.conf: transport + endpoint/auth/aor для 1001/1002
Проверено на: Ubuntu 22.04/24.04/26.04 + Asterisk 22 LTS.
Дата: Сентябрь 2026.