Задача: Какие конфигурационные файлы Asterisk 22 (OS: Ubuntu 24.04 LTS Server) за что отвечают, делаю себе справку:
Asterisk — это полнофункциональный сервер телефонии которые включает в себя:
Private Branch eXchange (PBX)Interactive Voice Response (IVR)Automated Call Distribution (ACD)Voice over IP (VoIP) gatewayingConferencingсвязь между другими устройствами телефонии включающей в себя: SIP, IAX2,H.323,Unistimсвязь с традиционной телефонией, включающей в себя: T1, E1, ISND PRI, GR-303, RBS, Loopstart, Groundstart, ISDN BRI и многими другими.
При запуске Asterisk читает /etc/asterisk/asterisk.conf — Это самый главный файл, он определяет где находятся каталоги, модули и служебные файлы Asterisk.
asterisk.conf задает пути к директории, которые использует Asterisk:
- Конфигурационные файлы
- Модули
- Логи
- Записи разговоров
- Временные файлы
- Базы данных
т.е. идет описание структуры файловой системы Asterisk.
[directories](!)
astcachedir => /var/cache/asterisk -> каталог для кэш-файлов
astetcdir => /etc/asterisk -> каталог конфигурации
astmoddir => /usr/lib/asterisk/modules -> каталог модулей
astvarlibdir => /var/lib/asterisk -> данные системы
astdbdir => /var/lib/asterisk -> каталог, где хранится внутренняя база данных Asterisk
astkeydir => /var/lib/asterisk -> каталог, где хранятся криптографические ключи Asterisk
astdatadir => /var/lib/asterisk -> каталог для хранения данных Asterisk, которые должны сохраняться между перезапусками системы
astagidir => /var/lib/asterisk/agi-bin
astspooldir => /var/spool/asterisk -> очередь задач (voicemail, call files)
astrundir => /var/run/asterisk -> каталог для хранения голосовых сообщений (AGI-скриптов), используемых модулем Asterisk Gateway Interface (AGI).
astlogdir => /var/log/asterisk -> логи
astsbindir => /usr/sbin -> каталог, где находятся бинарные исполняемые файлы Asterisk
Хочу сделать себе краткую справу по назначение конфигурационного файла в /etc/asterisk:
ekzorchik@srv-s2404a:~$ ls /etc/asterisk/ | grep conf
acl.conf -> относится к модулю Asterisk Logfiles / Call Detail Records (CDR) и управлению ограничениями звонков.
adsi.conf -> предназначен для конфигурации поддержки ADSI (Analog Display Services Interface). ADSI — это протокол, который позволяет аналоговым телефонам с дисплеем показывать информацию о вызове (номер, имя вызывающего, короткие меню и т. п.), используя DMTF-сигналы по обычной телефонной линии.
aeap.conf -> используется для конфигурации AEAP (Asterisk Event Audio Protocol). AEAP — это протокол для передачи аудио событий и управления звонками через внешние приложения, позволяющий интегрировать Asterisk с внешними системами реального времени (например, call‑центрами, IVR‑системами, приложениями для мониторинга звонков).
agents.conf -> используется для конфигурации агентов в Call Center или Queue (очередях звонков)
alarmreceiver.conf -> используется для конфигурации приёма сигналов аварийных уведомлений (alarm) от оборудования и устройств через Asterisk.
amd.conf -> используется для настройки AMD — Answering Machine Detection (детекция автоответчика). AMD позволяет Asterisk автоматически определять, кто ответил на звонок — человек или автоответчик/голосовая почта, и выполнять действия в зависимости от результата.
app_skel.conf -> это шаблонный (примерный) конфигурационный файл для разработки собственных приложений Asterisk
ari.conf -> используется для настройки Asterisk REST Interface (ARI). ARI — это REST API, позволяющий внешним приложениям управлять звонками, каналами, конференциями и другими ресурсами Asterisk в реальном времени.
ast_debug_tools.conf -> используется для конфигурации инструментов отладки Asterisk.
asterisk.conf -> основной системный конфигурационный файл сервера IP-телефонии
calendar.conf -> используется для настройки календарей, которые Asterisk может использовать для управления звонками и расписанием. позволяет Asterisk подключаться к внешним календарям (например, CalDAV, Google Calendar, iCal) и использовать события для логики dialplan.
ccss.conf -> используется для настройки функции CCSS (Call Completion Supplementary Services). Эта функция позволяет автоматически перезвонить абоненту, если вызываемый номер был занят.
cdr_adaptive_odbc.conf -> используется для записи CDR (Call Detail Records — журналов звонков) в базу данных через ODBC
cdr_beanstalkd.conf -> используется для отправки CDR (Call Detail Records — данных о звонках) в очередь сообщений Beanstalkd. позволяет передавать информацию о звонках во внешние системы (CRM, биллинг, аналитика) через очередь задач.
cdr.conf -> это главный конфигурационный файл системы CDR (Call Detail Records), которая записывает информацию о каждом телефонном звонке.
cdr_custom.conf -> используется для кастомной записи CDR (Call Detail Records) в файл с произвольным форматом.
cdr_manager.conf -> используется для отправки CDR (Call Detail Records) через AMI — Asterisk Manager Interface. настраивает модуль cdr_manager, который генерирует CDR-события и отправляет их клиентам, подключённым к AMI.
cdr_odbc.conf -> используется для записи CDR (Call Detail Records — журналов звонков) в базу данных через ODBC.
cdr_pgsql.conf -> используется для сохранения CDR (Call Detail Records — данных о звонках) в базу данных PostgreSQL.
cdr_sqlite3_custom.conf -> используется для сохранения CDR (Call Detail Records — данных о звонках) в базу SQLite3.
cdr_tds.conf -> используется для сохранения CDR (Call Detail Records — данных о звонках) в базу данных Microsoft SQL Server или Sybase через TDS (Tabular Data Stream) протокол.
cel_beanstalkd.conf -> используется для направки событий CEL (Channel Event Logging) в очередь Beanstalkd. CEL — это подсистема Asterisk, которая логирует все события каналов, включая звонки, удержания, переводы и завершения. Подключение к Beanstalkd позволяет передавать эти события в сторонние приложения или системы мониторинга в реальном времени.
cel.conf -> используется для конфигурации CEL (Channel Event Logging) — подсистемы Asterisk, которая логирует события каналов (звонки, переводы, удержания, завершения и др.) в реальном времени.
cel_custom.conf -> используется для создания кастомных бекендов или расширенной обработки событий CEL (Channel Event Logging).
cel_odbc.conf -> используется для отправки событий CEL (Channel Event Logging) в базу данных через ODBC.
cel_pgsql.conf -> используется для логирования событий CEL (Channel Event Logging) напрямую в базу данных PostgreSQL
cel_sqlite3_custom.conf -> используется для логирования событий CEL (Channel Event Logging) в базу данных SQLite3 с кастомной настройкой.
cel_tds.conf -> используется для логирования событий CEL (Channel Event Logging) в базу данных Microsoft SQL Server или Sybase через TDS (Tabular Data Stream) протокол.
chan_dahdi.conf -> используется для конфигурации каналов DAHDI (Digium/Asterisk Hardware Device Interface). DAHDI — это интерфейс для подключения аналоговых и цифровых телефонных линий (FXO/FXS, ISDN, PRI, E1/T1) к Asterisk через специализированное оборудование или VoIP-шлюзы.
chan_mobile.conf -> используется для конфигурации мобильных каналов Asterisk через GSM/UMTS/LTE устройства, обычно через интерфейс chan_mobile. Модуль chan_mobile.so позволяет Asterisk подключать мобильные телефоны или GSM-модемы, чтобы отправлять/принимать звонки и SMS напрямую через сотовую сеть.
chan_websocket.conf -> используется для конфигурации SIP-over-WebSocket (SIPoWS) каналов. Модуль chan_websocket.so позволяет Asterisk принимать WebSocket-соединения от клиентов WebRTC, таких как веб-телефоны или приложения, работающие в браузере, без необходимости использования традиционного SIP-транка.
cli_aliases.conf -> используется для создания пользовательских команд и алиасов для CLI (Command Line Interface) Asterisk.
cli.conf -> используется для конфигурации поведения CLI (Command Line Interface) Asterisk. Он определяет настройки доступа, внешний вид и поведение командной строки Asterisk, включая права пользователей и уровни отладки.
cli_permissions.conf -> используется для управления правами пользователей Asterisk CLI (Command Line Interface).
codecs.conf -> используется для настройки кодеков, используемых Asterisk для передачи голосового и мультимедийного трафика.
confbridge.conf -> используется для настройки конференц-комнат (Conference Bridge) в Asterisk. Модуль confbridge.so позволяет создавать виртуальные комнаты для аудио- и видео-конференций, управлять участниками, правами, звуковыми сигналами и поведением комнаты.
config_test.conf -> это тестовый или пример конфигурации, используемый для проверки настроек или демонстрации синтаксиса Asterisk.
console.conf -> используется для конфигурации поведения локальной консоли Asterisk.
dbsep.conf -> используется для настройки параметров разделителей (separators) при работе с базой данных Asterisk internal database (AstDB). AstDB — это встроенная ключ-значение база данных Asterisk, которая хранит различные системные и пользовательские настройки, такие как пароли, конфигурации маршрутизации звонков и состояния устройств.
dnsmgr.conf -> используется для настройки встроенного менеджера DNS-запросов Asterisk. Модуль res_dnsmgr.so позволяет Asterisk кэшировать DNS-запросы для SIP-транков, VoIP-провайдеров и других сетевых сервисов, что ускоряет подключение и уменьшает нагрузку на внешние DNS-серверы.
dsp.conf -> используется для конфигурации цифровой обработки сигналов (DSP) в Asterisk. DSP-модуль отвечает за обработку аудио, включая улучшение качества, подавление эха, регулировку громкости и кодирование/декодирование сигналов для различных кодеков.
dundi.conf -> используется для конфигурации DUndi (Distributed Universal Number Discovery) — распределённой базы данных телефонных номеров Asterisk. DUndi позволяет нескольким Asterisk-системам обмениваться информацией о внутренних и внешних номерах, создавая распределённую сеть для маршрутизации звонков между PBX.
enum.conf -> используется для настройки интеграции Asterisk с ENUM (Telephone Number Mapping). ENUM позволяет преобразовывать телефонные номера в URI (SIP, H.323, WebRTC и т.д.) через DNS-записи, что облегчает маршрутизацию звонков между телефонными сетями и VoIP-сервисами.
extconfig.conf -> используется для внешней конфигурации Asterisk — то есть для хранения данных различных модулей (SIP, PJSIP, Voicemail, CEL, CDR) во внешних базах данных вместо стандартных текстовых конфигурационных файлов. Это позволяет централизованно управлять настройками через SQL-базы (MySQL, PostgreSQL, SQLite и т.д.), упрощает масштабирование и интеграцию с внешними системами.
extensions.conf -> является центральным конфигурационным файлом для dialplan — сценариев маршрутизации звонков в Asterisk. Dialplan — это набор правил и инструкций, по которым Asterisk обрабатывает входящие и исходящие вызовы, направляет их на внутренние номера, внешние линии, голосовые меню, конференции и другие сервисы.
extensions_minivm.conf -> используется для мини-голосовой почты (Mini Voicemail) в Asterisk. Mini Voicemail — это облегчённая версия голосовой почты, которая позволяет быстро и просто принимать, и прослушивать голосовые сообщения, не требуя полной конфигурации модуля voicemail.conf.
features.conf -> используется для настройки функциональных возможностей звонков и конференций, таких как перехват звонка (call pickup), перевод (call transfer), конференции и другие функции DTMF.
festival.conf -> используется для настройки текст-в-речь (Text-to-Speech, TTS) через движок Festival. Модуль app_festival.so позволяет Asterisk озвучивать текстовые сообщения, что удобно для автоинформаторов, автоответчиков, интерактивных систем (IVR) и уведомлений.
followme.conf -> используется для настройки функции Follow Me — автоматического перенаправления звонков на несколько номеров по заданной последовательности или параллельно. Follow Me позволяет абоненту получать звонки на разных устройствах или линиях, например, на офисный телефон, мобильный и домашний, обеспечивая гибкость в обработке входящих вызовов.
func_odbc.conf -> используется для создания пользовательских функций Asterisk с доступом к базам данных через ODBC. С помощью func_odbc можно встраивать SQL-запросы прямо в dialplan, получать значения из базы данных и использовать их для маршрутизации звонков, проверки авторизации, выставления счетов и других целей.
geolocation.conf -> используется для конфигурации модуля геолокации Asterisk. Модуль res_geolocation.so позволяет определять и управлять географическим расположением SIP- или PJSIP-устройств в сети, что может использоваться для маршрутизации звонков, ограничения доступа, статистики и аналитики.
hep.conf -> используется для конфигурации модуля HEP (Homer Encapsulation Protocol), который позволяет Asterisk отправлять события и SIP-сообщения в систему мониторинга Homer. Модуль res_hep.so интегрирует Asterisk с Homer, что удобно для отладки, анализа и мониторинга SIP-трафика в больших VoIP-сетях.
http.conf -> используется для настройки встроенного HTTP-сервера Asterisk. Встроенный HTTP-сервер позволяет Asterisk предоставлять веб-интерфейсы, REST API, AMI через HTTP и веб-сервисы, а также поддерживать такие функции, как AJAX- и WebSocket-взаимодействие с PJSIP и ARI.
iax.conf -> используется для настройки IAX2 (Inter-Asterisk eXchange) протокола, который обеспечивает внутреннюю телефонию и межсерверное соединение между Asterisk-серверами. IAX2 — это проприетарный протокол Asterisk, оптимизированный для передачи голосового трафика через интернет, позволяющий экономить порт и упростить NAT-настройки по сравнению с SIP.
iaxprov.conf -> используется для настройки автоматического Provisioning (автоматической регистрации) IAX-устройств. Модуль res_iaxprov.so позволяет Asterisk автоматически предоставлять конфигурацию для IAX-клиентов, облегчая массовое развертывание телефонов и шлюзов без ручной настройки каждого устройства.
indications.conf -> используется для настройки тонов вызова и сигналов (call progress tones) для различных стран и операторов. Модуль indications.conf управляет тем, какие звуки и сигналы слышит абонент при различных состояниях линии: занято, ожидание, звонок, ошибочный номер и т.д.
logger.conf -> используется для настройки системы логирования Asterisk. Он управляет тем, куда и в каком формате Asterisk записывает логи событий, ошибок, звонков и отладочную информацию, что важно для мониторинга, диагностики и аудита.
manager.conf -> используется для настройки Asterisk Manager Interface (AMI). AMI — это TCP-интерфейс для управления Asterisk, позволяющий внешним приложениям и скриптам контролировать систему, инициировать вызовы, просматривать статус каналов, получать события и выполнять команды dialplan.
meetme.conf -> используется для настройки конференц-системы MeetMe. Модуль app_meetme.so позволяет Asterisk организовывать аудиоконференции, к которым могут подключаться несколько участников одновременно.
minivm.conf -> используется для настройки Mini-Voicemail — облегчённой системы голосовой почты Asterisk. Модуль app_minivm.so позволяет Asterisk предоставлять простую голосовую почту для пользователей без использования полной системы voicemail. Это удобно для небольших офисов или тестовых систем.
modules.conf -> используется для управления загрузкой модулей Asterisk. Каждый модуль Asterisk (.so) отвечает за определённую функциональность: каналы, приложения, кодеки, интерфейсы, API, GUI и др. modules.conf позволяет включать, отключать или управлять порядком загрузки модулей.
motif.conf -> используется для настроек модуля Motif или специфических конфигураций каналов/модулей.
musiconhold.conf -> Это один из ключевых файлов для настройки музыки на удержании (Music On Hold, MOH).
ooh323.conf -> относится к модулю OpenH323, который обеспечивает поддержку протокола H.323 для телефонии.
phoneprov.conf -> используется для автоматической или централизованной настройки IP-телефонов, чаще всего через модуль Asterisk Phone Provisioning (chan_phoneprov). Этот файл управляет профилями телефонов, шаблонами конфигурации и параметрами автоконфигурации.
pjproject.conf -> используется для настройки PJPROJECT, который лежит в основе PJSIP — современного стека SIP для Asterisk. Этот файл управляет глобальными параметрами PJSIP, такими как таймауты, логирование, SIP-поведение и поддержка NAT.
pjsip.conf -> основной конфигурационный файл для PJSIP в Asterisk, который используется для настройки SIP-аккаунтов, транспортов, эндпоинтов и аутентификации. Он пришёл на смену устаревшему sip.conf для нового стека SIP (PJSIP).
pjsip_notify.conf -> используется для настройки уведомлений (NOTIFY) через PJSIP. Он определяет, какие события сервер будет отправлять SIP-устройствам или провайдерам, например, обновления BLF (Busy Lamp Field), MWI (Message Waiting Indicator) и другие SIP NOTIFY-сообщения.
pjsip_wizard.conf -> связан с инструментом автоматической настройки (wizard) PJSIP. Он используется для быстрого развертывания PJSIP-транков и эндпоинтов, например, при массовой регистрации SIP-телефонов или провайдерских аккаунтов.
prometheus.conf -> используется для настройки экспорта метрик Asterisk в Prometheus, систему мониторинга и алертинга. С его помощью вы можете собирать статистику о звонках, регистрациях, состоянии каналов и других событиях в Asterisk и визуализировать их через Grafana или другие инструменты.
queuerules.conf -> используется для настройки правил обработки звонков в очередях (queues). Он позволяет автоматически применять определённые действия или ограничения к звонкам, поступающим в очередь, в зависимости от условий, например, номера вызывающего абонента или внешнего номера.
queues.conf -> это основной конфигурационный файл для настройки очередей звонков (Call Queues). С его помощью вы задаёте имена очередей, стратегии распределения вызовов, музыку на удержании, обработку агентов и другие параметры, которые управляют поведением Asterisk при обработке звонков.
res_config_mysql.conf -> используется для настройки подключения Asterisk к базе данных MySQL через модуль res_config_mysql. Он позволяет Asterisk хранить и извлекать конфигурацию (например, пользователей SIP, очереди, voicemail и др.) напрямую из базы данных вместо статических файлов (.conf).
res_config_odbc.conf -> используется для настройки подключения Asterisk к базе данных через ODBC (Open Database Connectivity). Это современный и гибкий способ хранить и загружать динамическую конфигурацию Asterisk (SIP/PJSIP-аккаунты, очереди, voicemail и другие объекты) из любой базы данных, поддерживающей ODBC (MySQL, PostgreSQL, MSSQL и др.).
res_config_sqlite3.conf -> используется для настройки подключения к базе данных SQLite3 через модуль res_config_sqlite3. Он позволяет Asterisk хранить и загружать динамическую конфигурацию (например, пользователей SIP/PJSIP, очереди, voicemail и другие объекты) прямо в локальной SQLite-базе, без необходимости настраивать отдельный сервер MySQL или PostgreSQL.
res_corosync.conf -> используется для настройки кластеризации и высокой доступности (HA) через модуль res_corosync. Он позволяет Asterisk работать в составе кластера с несколькими нодами, используя Corosync для синхронизации состояния между серверами.
res_curl.conf -> используется для настройки модуля res_curl, который позволяет Asterisk выполнять HTTP/HTTPS-запросы через библиотеку libcurl. Это полезно для интеграции с внешними веб-сервисами, REST API или другими системами через HTTP прямо из диалплана или приложений Asterisk.
res_fax.conf -> используется для настройки модуля обработки факсимильных сообщений (FAX) через res_fax. Он позволяет серверу Asterisk принимать и отправлять факсы через телефонию, обычно по протоколам T.38 (FoIP) или G.711 (по аудиоканалу).
res_http_media_cache.conf -> используется для настройки кеширования медиафайлов, загружаемых через HTTP/HTTPS. Он работает вместе с модулем res_http_media_cache, который позволяет Asterisk кэшировать аудио и другие медиафайлы, чтобы повторно не загружать их с удаленного сервера, улучшая производительность при воспроизведении в диалплане или IVR.
res_ldap.conf -> используется для настройки подключения к LDAP-серверам через модуль res_ldap. Он позволяет Asterisk использовать LDAP (Lightweight Directory Access Protocol) для аутентификации пользователей, поиска контактов, интеграции с корпоративными каталогами и динамического получения данных о SIP-аккаунтах.
res_odbc.conf -> используется для конфигурации ODBC (Open Database Connectivity) соединений в Asterisk. ODBC позволяет Asterisk подключаться к различным базам данных (MySQL, PostgreSQL, MS SQL, Oracle и др.) через стандартный интерфейс, что обеспечивает гибкость и переносимость конфигураций для модулей, использующих БД.
resolver_unbound.conf -> используется для конфигурации DNS-резолвера Unbound внутри Asterisk. Unbound — это встроенный рекурсивный DNS-сервер, который может использоваться Asterisk для разрешения доменных имён SIP/SRTP, WebRTC и других сетевых ресурсов без обращения к внешней системе DNS напрямую.
res_parking.conf -> используется для настройки механизма “Call Parking” (парковки звонков) в Asterisk. Call Parking позволяет временно поставить звонок на “парковочную” линию, чтобы другой пользователь мог его позже забрать с другого телефона.
res_pgsql.conf -> используется для подключения Asterisk к базе данных PostgreSQL.
res_snmp.conf -> используется для интеграции Asterisk с SNMP (Simple Network Management Protocol).
res_stun_monitor.conf -> используется для мониторинга NAT и определения публичного IP/порта Asterisk через STUN. STUN (Session Traversal Utilities for NAT) — это протокол, который позволяет VoIP-устройствам узнавать свой публичный адрес и корректно работать за NAT.
rtp.conf -> используется для настройки потоков RTP (Real-Time Protocol), по которым передаются голосовые данные в Asterisk.
say.conf -> используется для настройки модулей синтеза речи и произнесения чисел/текста в Asterisk.
sla.conf -> используется для настройки SLA (Service Level Agreement) мониторинга очередей вызовов. Этот конфиг управляет сбором статистики по времени ожидания звонков, уровню обслуживания и обработке очередей, позволяя PBX автоматически отслеживать соответствие SLA.
smdi.conf -> используется для настройки SMDI (Simplified Message Desk Interface) — протокола, который позволяет Asterisk взаимодействовать с внешними системами голосовой почты и автоответчиками. SMDI часто применяется для интеграции с корпоративными voicemail-серверами, например, для цифровой телефонии или старых PBX, где требуется обмен сигналами о новом сообщении.
sorcery.conf -> используется для настройки фреймворка Sorcery, который управляет данными и объектами в Asterisk.
stasis.conf -> используется для настройки Stasis — фреймворка приложений Asterisk REST Interface (ARI).
statsd.conf -> используется для интеграции Asterisk с системой мониторинга StatsD. StatsD — это сервер, который собирает метрики в реальном времени (счётчики, таймеры, гистограммы) и передает их в системы визуализации вроде Graphite, Grafana или Prometheus.
stir_shaken.conf -> используется для настройки поддержки протокола STIR/SHAKEN в Asterisk. STIR/SHAKEN — это стандарты для аутентификации и верификации телефонных вызовов, разработанные для борьбы с спам-звонками и подменой Caller ID (spoofing).
test_sorcery.conf -> является тестовым конфигурационным файлом для фреймворка Sorcery. Sorcery — это новая архитектура хранения и управления данными в Asterisk, которая заменяет прямой доступ к глобальным переменным и структурам (например, ast_db, sip peers и т.д.), делая систему более модульной и расширяемой.
udptl.conf -> используется для настройки передачи Fax и T.38 через UDP. Модуль Asterisk res_udptl обеспечивает транспорт для UDPTL (UDP Transport Layer) — протокола, применяемого для факсимильной связи по IP-сетям (T.38 Fax over IP).
unistim.conf -> используется для настройки поддержки телефонов Nortel/Avaya UniStim. UniStim — это протокол телефонов Nortel/Avaya, и этот конфиг позволяет Asterisk регистрировать и обслуживать такие устройства напрямую, без использования SIP.
users.conf -> используется для определения учетных записей пользователей внутри Asterisk, обычно для внутренней телефонии.
voicemail.conf -> является главным конфигурационным файлом голосовой почты (Voicemail).
websocket_client.conf -> используется для конфигурации WebSocket-клиентов, которые подключаются к внешним WebSocket-серверам.
xmpp.conf -> используется для настройки XMPP (Jabber) соединений.