# Глава 6. Основы диалплана > _Всё должно быть изложено так просто, как только возможно, но не более того._ > > — Альберт Эйнштейн Диалплан - это сердце вашей системы Asterisk. Он определяет, как звонки поступают в систему и выходят из нее. Диалплан является скриптовым языком, который определяет инструкции, которым Asterisk следует в ответ на вызовы, поступающие от каналов. В отличие от традиционных телефонных систем, диалплан Asterisk полностью настраивается. Опытные разработчики программного обеспечения считают код диалплана Asterisk архаичным и часто предпочитают управлять потоком вызовов с помощью API Asterisk, таких как AMI и ARI (которые мы обсудим в последующих главах). Независимо от ваших планов в этом отношении, изучение поведения Asterisk намного проще, если вы сначала поймете диалплан. Возможно, также стоит отметить, что диалплан Asterisk настроен на производительность и поэтому является самым быстрым способом выполнения потока вызовов с точки зрения быстродействия и минимальной нагрузки на систему. Диалплан работает быстро. В этой главе представлены основные понятия, которые лягут в базу любого диалплана, написанного вами. Не пропускайте слишком много из этой главы, так как примеры строятся друг на друге, и это принципиально важно для Asterisk. Обратите также внимание, что эта глава ни в коем случае не является исчерпывающим обзором всех возможных вещей, которые может сделать диалплан; наша цель - охватить только самое необходимое. В последующих главах мы рассмотрим более сложные темы диалплана. Вам рекомендуется экспериментировать. ## Синтаксис диалплана Диалплан Asterisk задается в конфигурационном файле с именем _extensions.conf_, расположенном в каталоге _/etc/asterisk_. Структура диалплана состоит из четырех иерархических компонентов: контекстов (Context), расширений (Extension), приоритетов (Priority) и приложений (Application) (смотри [Рисунок 6-1](pic6-1.png)). ![](pics/pic6-1.png) _Рисунок 6-1. Иерархия диалплана_ Давайте нырнем прямо туда.
Примеры файлов конфигурации Основной файл _extensions.conf_ был создан как часть процесса установки ранее в этой книге. Мы будем опираться на этот файл в этой главе. Asterisk также поставляется с подробным файлом _extensions.conf_, который может быть установлен с образцами файлов конфигурации (за это отвечает команда установки `make samples`), и если вы запустили эту команду (мы не рекомендуем запускать её во время установки, но это предлагается установщиком), у вас, скорее всего, будет файл _/etc/asterisk/extensions.conf_, который переполнен информацией. Вместо того, чтобы начинать исправлять под себя файл пример, мы предлагаем вам построить свой _extensions.conf_ с нуля (исходный файл вы можете переименовать или переместить куда-нибудь, если хотите сохранить в качестве источника примеров). Как и говорилось файл примера _extensions.conf_ - это фантастический ресурс, полный примеров и идей, которые вы можете использовать после того, как изучили основные понятия. Если вы выполнили наши инструкции по установке, то найдете файл _extensions.conf.sample_ в каталоге _~/src/asterisk-15. |
Это очень важное соображение. С традиционными УАТС, как правило, существует набор значений по умолчанию для таких вещей, как прием, что означает, что если вы забудете их определить, они, вероятно, будут работать в любом случае. В Asterisk все наоборот. Если вы не скажете Asterisk, как обрабатывать каждую ситуацию, и он столкнется с чем-то, что не может обработать, вызов, как правило, будет отклонен. |
Имена контекстов имеют максимальную длину 79 символов (80 символов минус 1 завершающий null). |