asterisk.conf
Как не трудно догадаться из названия asterisk.conf это основной конфигурационный файл Asterisk. В нем находятся основные глобальные параметры, опции, настройки запуска, списки папок и прочее.
Вначале файла asterisk.conf идет список папок используемых Asterisk. Далее секция [options] затем [files]. Разберем все по порядку.
Каталоги Asterisk
[directories](!)
astetcdir => /etc/asterisk
astmoddir => /usr/lib64/asterisk/modules
astvarlibdir => /var/lib/asterisk
astdbdir => /var/lib/asterisk
astkeydir => /var/lib/asterisk
astdatadir => /var/lib/asterisk
astagidir => /var/lib/asterisk/agi-bin
astspooldir => /var/spool/asterisk
astrundir => /var/run/asterisk
astlogdir => /var/log/asterisk
astsbindir => /usr/sbin
Перечислим краткое описание каждого каталога и для чего он предназначен
- astetcdir – основная папка со всеми конфигурационными файлами. В данном каталоге хранятся не только файлы с расширением *.conf но и *.lua;*.ael
- astmoddir – папка с модулями загружаемыми Asterisk или пользователем попадают сюда. Формат файлов: Shared Object format (.so)
- astvarlibdir – дополнительные элементы библиотеки и файлы, содержащие данные, используемые во время выполнения
- astdbdir – каталог для хранения файла данных внутренней БД Asterisk. В версиях Asterisk, использующих базу данных SQLite3, файл будет называться astdb.sqlite3
- astkeydir – в случае настройки шифрования на основе ключей, Asterisk будет искать необходимые ключи в подкаталоге keys этого расположения
- astdatadir – расположение по умолчанию для звуков Asterisk. Находятся в подкаталоге sounds
- astagidir – при использовании AGI приложений Asterisk данная папка используется для скриптов.
- astspooldir – директория для хранения различных основных и модульных компонентов. Основные подкаталоги: dictate, meetme, monitor, outgoing, recording, system, tmp, voicemail
- astrundir – когда Asterisk запущен здесь будет находиться два файла: asterisk.ctl и asterisk.pid. Первый файл это сокет управления и PID (Process ID) для Asterisk.
- astlogdir – если настроено сохранение журнала в файл он будет храниться в этом каталоге.
- astsbindir – по умолчанию Asterisk ищет в этом каталоге любые системные бинарные файлы, которые он использует. В случае переноса исполняемых файлов необходимо будет изменить эту папку
Секция options
Значение | Описание |
---|---|
verbose | Устанавливает уровень детализации verbose (полезно при изучении не очень сложной проблемы). Параметр действует на консоль и запись журнала в файл. Может принимать значение от 0 до 9, где 0 – отключено, 9 – максимальный уровень детализации. Тот же параметр можно задать при входе в Asterisk указывая параметр -v. |
debug | Более детальный и глубокий анализ проблемы позволяет выявить данный параметр. Также действует на консоль и запись журнала в файл. Может принимать значение от 0 до 9, где 0 – отключено, 9 – максимальный уровень детализации. |
refdebug | Включение журнала отладки подсчета ссылок (reference count) |
alwaysfork | Всегда перехватывать и контролировать вывод терминала. Переопределяет любые параметры запуска Asterisk с ключом -f в командной строке. Может также использоваться для отмены использования ключей -d и -v. То же значение что и при ключе -F при запуске Asterisk. |
nofork | Не перехватывать вывод терминала. Противоположное значению alwaysfork рассмотренному выше. Также используется при запуске Asterisk из командной строки с ключом -f. |
quiet | Уменьшить вывод информации в консоли по умолчанию при работе в сочетании с консольным режимом (-c). Тоже значение при запуске Asterisk с ключом -q. |
timestamp | Добавить метку времени ко всем выходным данным (кроме команд) идущим на консоль. Используется когда запущен verbose или журналирование на консоли. Аналогично параметру -T при запуске Asterisk. |
execincludes | Поддержка #exec в конфигурационных файлах. |
console | Запускать в режиме консоли. Аналогичный параметр -c при запуске Asterisk. |
highpriority | Запуск Asterisk с повышенным приоритетом в режиме реального времени. То же делает параметр -p при старте Asterisk. |
initcrypto | Инициализация криптографических ключей. Ключ -i в случае запуска из командной строки. |
nocolor | Выключить использование цветной консоли. |
dontwarn | Отключить события типа warnings. |
dumpcore | Дамп ядра в случае падения. Аналог параметра -g при старте Asterisk. |
languageprefix | Как будет выглядеть путь к аудио файлу с языковым префиксом. Если значение yes то путь будет <язык>/<каталог>/<файл>. В случае значения no сохранение будет в формате <каталог>/<язык>/<файл>. |
systemname | Уникальное имя Asterisk. Используется как часть UNIQUEID в CDR. |
autosystemname | Автоматически устанавливать параметр systemname по имени хоста, например ‘localhost‘. Используется при сбое или в случае указанного параметра systemname. |
mindtmfduration | Указать минимальную задержку DTMF в миллисекундах. В случае получения более коротких DTMF сообщений, они будут приведены к указанному минимому. |
maxcalls | Максимальное количество одновременных входящих вызовов. |
maxload | Максимальная нагрузка на процессор после которой Asterisk прекратит новые соединения. |
maxfiles | Максимальное количество открытых фалов |
minmemfree | Минимальное количество свободной памяти в Мб. Если оперативной памяти будет меньше указанного минимума Asterisk перестанет принимать новые звонки. |
cache_media_frames | Кэширование медиафайлов для повышения производительности. Отключите эту опцию, чтобы помочь отследить неправильное управление медиа-кадром при использовании valgrind или MALLOC_DEBUG. Кэш мешает определить, используется ли фрейм после освобождения и кто его освободил. Этот параметр не имеет никакого эффекта, когда Asterisk компилируется с включенным параметром времени компиляции LOW_MEMORY, поскольку код кэша не существует. |
cache_record_files | Кеширование аудио записи в другую папку. Кеширование идет пока не завершится запись. |
record_cache_dir | Указать директорию для кеша (используется в параметре cache_record_files). |
transmit_silence | Транслировать тишину в канал в случае отсутствия других звуков |
transcode_via_sln | Включить кодирование через SLINEAR вместо прямого кодирования |
runuser | Пользователь используемый для запуска Asterisk. |
rungroup | Группа в которой состоит пользователь используемый для запуска Asterisk. |
lightbackground | В случае использование терминала со светлым фоном |
forceblackbackground | Изменить фон терминала на черный. |
defaultlanguage | Язык по умолчанию |
documentation_language | На каком языке выводить документацию. |
hideconnect | Скрыть сообщения, отображаемые при подключении и отключении удаленной консоли. |
lockconfdir | Защитить каталог, содержащий конфигурационные файлы (/etc/asterisk) с помощью блокировки. |
stdexten | Как вызывать stdexten в extensions.conf. Используя macro – поддерживается в более старых версиях, либо gosub – современный метод. По умолчанию используется gosub |
live_dangerously | Включить возможность использования потенциально опасных dialplan`ов. Использующиеся функции типа AMI, SHELL потенциально опасны из-за требования повышенных привилегий. |
entityid | MAC адрес. Должен быть уникальным. Используется в DUNDi, Exchanging Device, Mailbox State с протоколами XMPP, Corosync и PJSIP. |
rtp_use_dynamic | В случае значения yes включает использование динамически портов для протокола RTP |
rtp_pt_dynamic | Динамический формат полезной нагрузки RTP. |
Пример стандартных значений секции options файла asterisk.conf
[options]
;verbose = 3
;debug = 3
;refdebug = yes ; Enable reference count debug logging.
;alwaysfork = yes ; Same as -F at startup.
;nofork = yes ; Same as -f at startup.
;quiet = yes ; Same as -q at startup.
;timestamp = yes ; Same as -T at startup.
;execincludes = yes ; Support #exec in config files.
;console = yes ; Run as console (same as -c at startup).
;highpriority = yes ; Run realtime priority (same as -p at
; startup).
;initcrypto = yes ; Initialize crypto keys (same as -i at
; startup).
;nocolor = yes ; Disable console colors.
;dontwarn = yes ; Disable some warnings.
;dumpcore = yes ; Dump core on crash (same as -g at startup).
;languageprefix = yes ; Use the new sound prefix path syntax.
;systemname = my_system_name ; Prefix uniqueid with a system name for
; Global uniqueness issues.
;autosystemname = yes ; Automatically set systemname to hostname,
; uses 'localhost' on failure, or systemname if
; set.
;mindtmfduration = 80 ; Set minimum DTMF duration in ms (default 80 ms)
; If we get shorter DTMF messages, these will be
; changed to the minimum duration
;maxcalls = 10 ; Maximum amount of calls allowed.
;maxload = 0.9 ; Asterisk stops accepting new calls if the
; load average exceed this limit.
;maxfiles = 1000 ; Maximum amount of openfiles.
;minmemfree = 1 ; In MBs, Asterisk stops accepting new calls if
; the amount of free memory falls below this
; watermark.
;cache_media_frames = yes ; Cache media frames for performance
; Disable this option to help track down media frame
; mismanagement when using valgrind or MALLOC_DEBUG.
; The cache gets in the way of determining if the
; frame is used after being freed and who freed it.
; NOTE: This option has no effect when Asterisk is
; compiled with the LOW_MEMORY compile time option
; enabled because the cache code does not exist.
; Default yes
;cache_record_files = yes ; Cache recorded sound files to another
; directory during recording.
;record_cache_dir = /tmp ; Specify cache directory (used in conjunction
; with cache_record_files).
;transmit_silence = yes ; Transmit silence while a channel is in a
; waiting state, a recording only state, or
; when DTMF is being generated. Note that the
; silence internally is generated in raw signed
; linear format. This means that it must be
; transcoded into the native format of the
; channel before it can be sent to the device.
; It is for this reason that this is optional,
; as it may result in requiring a temporary
; codec translation path for a channel that may
; not otherwise require one.
;transcode_via_sln = yes ; Build transcode paths via SLINEAR, instead of
; directly.
;runuser = asterisk ; The user to run as.
;rungroup = asterisk ; The group to run as.
;lightbackground = yes ; If your terminal is set for a light-colored
; background.
;forceblackbackground = yes ; Force the background of the terminal to be
; black, in order for terminal colors to show
; up properly.
;defaultlanguage = en ; Default language
documentation_language = en_US ; Set the language you want documentation
; displayed in. Value is in the same format as
; locale names.
;hideconnect = yes ; Hide messages displayed when a remote console
; connects and disconnects.
;lockconfdir = no ; Protect the directory containing the
; configuration files (/etc/asterisk) with a
; lock.
;stdexten = gosub ; How to invoke the extensions.conf stdexten.
; macro - Invoke the stdexten using a macro as
; done by legacy Asterisk versions.
; gosub - Invoke the stdexten using a gosub as
; documented in extensions.conf.sample.
; Default gosub.
;live_dangerously = no ; Enable the execution of 'dangerous' dialplan
; functions from external sources (AMI,
; etc.) These functions (such as SHELL) are
; considered dangerous because they can allow
; privilege escalation.
; Default no
;entityid=00:11:22:33:44:55 ; Entity ID.
; This is in the form of a MAC address.
; It should be universally unique.
; It must be unique between servers communicating
; with a protocol that uses this value.
; This is currently is used by DUNDi and
; Exchanging Device and Mailbox State
; using protocols: XMPP, Corosync and PJSIP.
;rtp_use_dynamic = yes ; When set to "yes" RTP dynamic payload types
; are assigned dynamically per RTP instance vs.
; allowing Asterisk to globally initialize them
; to pre-designated numbers (defaults to "yes").
;rtp_pt_dynamic = 35 ; Normally the Dynamic RTP Payload Type numbers
; are 96-127, which allow just 32 formats. The
; starting point 35 enables the range 35-63 and
; allows 29 additional formats. When you use
; more than 32 formats in the dynamic range and
; calls are not accepted by a remote
; implementation, please report this and go
; back to value 96.
Секция files
Изменение строк в секции files может поставить под угрозу безопасность вашей IP ATS Asterisk. Вносите изменения только в случае крайней необходимости.
Значение | Описание |
---|---|
astctlpermissions | Права доступа к сервису Asterisk |
astctlowner | Имя владельца сервиса |
astctlgroup | Название группы доступа к сервису |
astctl | Название файла *.ctl |
Пример стандартных значений секции files файла asterisk.conf
; Changing the following lines may compromise your security.
;[files]
;astctlpermissions = 0660
;astctlowner = root
;astctlgroup = apache
;astctl = asterisk.ctl
В данной статье мы рассмотрели все параметры конфигурационного файла asterisk.conf.
Список консольных команд Asterisk можно посмотреть тут