AsteriskТелефония

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 потенциально опасны из-за требования повышенных привилегий.
entityidMAC адрес. Должен быть уникальным. Используется в 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 можно посмотреть тут

Поделиться:
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии