Установка зависимостей
sudo apt-get update sudo apt-get install git /usr/bin/svn curl gcc-c++ libedit-devel libncurses-devel libuuid-devel libjansson-devel libsqlite3-devel libxml2-devel liburiparser-devel libxslt-devel libpopt-devel libspandsp-devel libfftw3-devel libcurl-devel libsrtp2-devel libjansson-devel libiksemel-devel libldap-devel libradiusclient-ng-devel libunixODBC-devel postgresql-devel zlib-devel libnet-snmp-devel libsystemd-devel rpm-build-python3
Скачивание исходников. 19.3 — самая последняя ветка на момент написания статьи.
mkdir -p ~/compile cd ~/compile git clone -b 19.3 http://gerrit.asterisk.org/asterisk cd asterisk/ ./contrib/scripts/get_mp3_source.sh
Конфигурирование
./configure --prefix=/usr/local/asterisk make menuselect
В запустившейся программе нажать “x”, чтобы выбралось все по умолчанию
Компиляция и установка
make -j`nproc` sudo make install sudo make samples sudo make config
Создание специального пользователя, выдача ему прав на каталоги
sudo adduser -g asterisk --system --home /usr/local/asterisk/var/lib/asterisk --no-create-home asterisk
sudo usermod -a -G dialout,audio asterisk
sudo chown -R asterisk: /usr/local/asterisk/var/{lib,log,run,spool}/asterisk /usr/local/asterisk/lib/asterisk /usr/local/asterisk/etc/asterisk
sudo chmod -R 750 /usr/local/asterisk/var/{lib,log,run,spool}/asterisk /usr/local/asterisk/lib/asterisk /usr/local/asterisk/etc/asterisk
Отредактировать конфиги из каталога /usr/local/asterisk/etc/asterisk
В начало файла pjsip.conf добавить
[simpletrans] type=transport protocol=udp bind=0.0.0.0 [6001] type = endpoint context = internal disallow = all allow = ulaw aors = 6001 auth = auth6001 [6001] type = aor max_contacts = 1001 [auth6001] type=auth auth_type=userpass password=1234 username=6001 [6002] type = endpoint context = internal disallow = all allow = ulaw aors = 6002 auth = auth6002 [6002] type = aor max_contacts = 1001 [auth6002] type=auth auth_type=userpass password=1234 username=6002 [6003] type = endpoint context = internal disallow = all allow = ulaw aors = 6003 auth = auth6003 [6003] type = aor max_contacts = 1001 [auth6003] type=auth auth_type=userpass password=1234 username=6003 <//code> В конец confbridge.conf добавить <code> [confer] type=bridge mixing_interval=10 video_mode=none internal_sample_rate=192000 record_conference=no
В конец extensions.conf добавить
[internal]
exten => _XXXX,1,Dial(PJSIP/${EXTEN})
;exten => 6001,1,Dial(PJSIP/6001)
;exten => 6002,1,Dial(PJSIP/6002)
;exten => 6003,1,Dial(PJSIP/6003)
exten => 801,1,Playback(demo-echotest)
exten => 801,2,Echo
exten => 801,3,Playback(demo-echodone)
exten => 999,1,Answer()
exten => 999,n,ConfBridge(1234,default_bridge)
В конец modules.conf добавить
noload => res_config_ldap.so noload => res_config_pgsql.so noload => codec_dahdi.so 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 noload => cdr_tds.so noload => cel_radius.so noload => cdr_sqlite3_custom.so noload => cdr_radius.so noload => cdr_pgsql.so noload => cel_sqlite3_custom.so
В файле ari.conf указать
enabled = no
Запуск
Сервер
sudo /usr/local/asterisk/sbin/asterisk -G asterisk -U asterisk
Клиент
sudo /usr/local/asterisk/sbin/asterisk -vvvr
Тестирование
Попробуем подключиться через Linphone. Установка:
sudo apt-get install linphone
В окне помощника настройки учетной записи нажать “Отменить”. Меню “Опции/Параметры”. Вкладка “Настройки сети”. Порт 5061. Вкладка “Управление учетными записями SIP”. Отображаемое имя 6001, имя пользователя 6001. Кнопка “Добавить”. В появившемся окне: “ваш идентификатор SIP” и прокси 6001@192.168.1.1:5060 (предположим, что IP сервера — 192.168.1.1). Ок. Появится окно ввода пароля - 1234
Тест - звонок на 801 (801@192.168.14.1:5060)
Конференция - звонок на 999
Для командной строки есть linphonec
Дополнительная информация
sudo contrib/scripts/install_prereq install - установка зависимостей, но для альта не сработает, потому что он не прописан в скрипте