Устанавливаем Asterisk 13 из исходных кодов на Ubuntu 16


Минимальная конфигурация


устанавливаем необходимые для компиляции пакеты

apt-get install build-essential libncurses5-dev uuid-dev libjansson-dev libxml2-dev libsqlite3-dev libssl-dev

скачиваем и распаковываем дистрибутив

curl -L http://downloads.asterisk.org/pub/telephony/certified-asterisk/asterisk-certified-13.21-current.tar.gz | tar xz -C ~/

выполняем конфигурирование


cd ~/asterisk-certified-13.21-cert3
./configure --prefix=/opt/asterisk --with-pjproject-bundled

Замечание: параметр "--with-pjproject-bundled" необходим для использования библиотеки PJSIP, входящей в дистрибутив

запускаем menuselect

make menuselect

выбираем компоненты для установки

Applications

app_dial (функция Dial плана набора)

app_playback (функция Playback плана набора)

Bridging Modules

bridge_simple (без данного модуля соединение между конечными точками устанавливается, но голосовой трафик не передается, и соединение через несколько секунд обрывается)

Channel Drivers

chan_pjsip (драйвер канала SIP)

Codec Translators

codec_alaw (кодек G.711 A-law)

codec_ulaw (кодек G.711 μ-law)

Format Interpreters

format_pcm (поддержка функцией Playback плана набора звуковых файлов в форматах G.711 A-law и G.711 μ-law)

PBX Modules

pbx_config (интерпретация конфигурационных файлов)

Resource Modules

res_pjproject (необходим для модуля chan_pjsip)

res_pjsip (необходим для модуля chan_pjsip)

res_pjsip_authenticator_digest (без данного модуля регистрация конечных точек выполняется даже при неправильно указанных учетных данных и даже вообще без них)

res_pjsip_endpoint_identifier_user (регистрации конечных точек)

res_pjsip_registrar (регистрация конечных точек)

res_pjsip_sdp_rtp (выполнение вызовов)

res_pjsip_session (необходим для модуля chan_pjsip)

res_rtp_asterisk (выполнение вызовов)

res_sorcery_astdb (необходим для модуля chan_pjsip)

res_sorcery_config (необходим для модуля chan_pjsip)

res_sorcery_memory (необходим для модуля chan_pjsip)

Compiler Flags

BUILD_NATIVE (отмечаются по умолчанию; оставляем без изменения)

OPTIONAL_API (отмечаются по умолчанию; оставляем без изменения)

Core Sound Packages

core-sounds-ru-alaw (набор звуковых файлов на русском языке в формате G.711 A-law)

core-sounds-ru-ulaw (набор звуковых файлов на русском языке в формате G.711 μ-law)

выполняем компиляцию и установку

make
make install
make config

создаем файл /opt/asterisk/etc/asterisk/modules.conf


[modules]
  load => app_dial.so
  load => app_playback.so
  load => bridge_simple.so
  load => chan_pjsip.so
  load => codec_alaw.so
  load => codec_ulaw.so
  load => format_pcm.so
  load => pbx_config.so
  load => res_pjproject.so
  load => res_pjsip.so
  load => res_pjsip_authenticator_digest.so
  load => res_pjsip_endpoint_identifier_user.so
  load => res_pjsip_registrar.so
  load => res_pjsip_sdp_rtp.so
  load => res_pjsip_session.so
  load => res_rtp_asterisk.so
  load => res_sorcery_astdb.so
  load => res_sorcery_config.so
  load => res_sorcery_memory.so

создаем файл /opt/asterisk/etc/asterisk/pjsip.conf


[default_transport]
  type = transport
  protocol = udp
  bind = 0.0.0.0
 
[endpoint_template](!)
  type = endpoint
  transport = default_transport
  context = local_context
  disallow = all
  allow = alaw
  allow = ulaw
 
[auth_template](!)
  type = auth
  auth_type = userpass
 
[aor_template](!)
  type = aor
  max_contacts = 1
 
[1](endpoint_template)
  auth=1
  aors=1
 
[1](auth_template)
  username=1
  password=pass1
 
[1](aor_template)
 
[2](endpoint_template)
  auth=2
  aors=2
 
[2](auth_template)
  username=2
  password=pass2
 
[2](aor_template)

создаем файл /opt/asterisk/etc/asterisk/extensions.conf


[local_context]
  exten => _[12],1,NoOp()
    same => n,Dial(PJSIP/${EXTEN})
    same => n,Hangup()
  exten => _.,1,NoOp()
    same => n,Playback(ru/pbx-invalid)
    same => n,Hangup()

создаем файл /opt/asterisk/etc/asterisk/asterisk.conf


[options]
  runuser = asterisk
  rungroup = asterisk

создаем пользователя и группу asterisk

adduser --no-create-home asterisk

настраиваем владельцев папки /opt/asterisk и права доступа к ней

chown -R asterisk:asterisk /opt/asterisk/
find /opt/asterisk/ -type d -exec chmod 700 {} \;
find /opt/asterisk/ -type f -exec chmod 600 {} \;
chmod 700 /opt/asterisk/sbin/*

запускаем Asterisk

service asterisk start

Замечание: для запуска CLI выполняем "/opt/asterisk/sbin/asterisk -r"


Настройка музыки на удержании


запускаем menuselect

cd ~/asterisk-certified-13.21-cert3
make menuselect

выбираем компоненты для установки

Resource Modules

res_musiconhold

Music On Hold File Packages

MOH-OPSOUND-ULAW

MOH-OPSOUND-ALAW

выполняем компиляцию и установку новых компонентов

make
make install

в файле /opt/asterisk/etc/asterisk/modules.conf в раздел [modules] добавляем


load => res_musiconhold.so

создаем файл /opt/asterisk/etc/asterisk/musiconhold.conf


[general]
  cachertclasses=yes
 
[default]
  mode=files
  sort=random
  directory=moh 

в файле /opt/asterisk/etc/asterisk/extensions.conf добавляем в список аргументов функции Dial() параметр "m"


same => n,Dial(PJSIP/${EXTEN},,m)

настраиваем владельцев папки /opt/asterisk/ и права доступа к ней

перезапускаем Asterisk

Добавить комментарий