Asterisk – начало аудита телефонии

Предположим, что вы пришли в новую организацию с существующей рабочей Информационной системой. И в ваши новые обязанности входит поддержка IP телефонии на базе Asterisk. У вас возникнет масса вопросов и один из них: “с чего начать?”.
Поделюсь своим опытом, с чего начал я.

Для начала надо посмотреть, что внутри конфигурационных файлов АТС, и конечно начать читать книгу издательства O’Reilly “Asterisk: The Future of Telephony” Jim Van Meggelen, Leif Madsen, and Jared Smith. На просторах интернет легко найти второе издание на русском языке.
Самый первый файл, который смотрит Asterisk при запуске – это asterisk.conf В нем хранится информация о том что и где находится в системе для работы АТС. Там не очень интересно. Далее смотрим конфигурацию диалпланов (плана набора) в файле: extensions.conf. В нем на много интереснее. В принципе, в настроенной системе для внесения незначительных изменений нам понадобиться править только этот файл, если не будет меняться конфигурация всей Информационной системы.

В этом конфигурационном файле есть два основных контекста – [general] и [globals]. Это в первом контексте записаны общие настройки диалплана, а во втором глобальные переменные. Эти два контекста, скорее всего вам никогда не понадобятся. Для того чтобы понять цепочку как все это работает, нужно обратить внимание на записи вот такого вида:

[DID_operator]
include = DID_operator_timeinterval_day,${timeinterval_day}
include = DID_operator_default

Здесь идет вставка контекста DID_operator_timeinterval_day, DID_operator_default в контекст DID_operator. Обратите внимание на ${timeinterval_day} – это как раз вызов переменной из глобального контекста.

Посмотрим на контексты DID_operator_timeinterval_day, DID_operator_default поближе и увидим, что там даются четкие инструкции “что делать”.

[DID_operator_timeinterval_day]
exten = 4991234567,1,Goto(voicemenu-custom,s,1)
exten = s,1,Goto(voicemenu-custom,s,1)

Здесь идет обработка звонков. voicemenu-custom – это тоже контекст в моем конфигурационном файле. А вот параметр s заслуживает чуть больше внимания. Когда в контекст поступают вызовы, для которых не указан конкретный номер, они передаются на добавочный номер s. (s – сокращение от start)

Внимательный разбор этих цепочек позволить понять как работает система. Следующим шагом в изучении конфигурационных файлов Asterisk нам нужно будет посмотреть файл: sip.conf. В нем все построено аналогично файлу extensions.conf, все на уровне контекстов. Вот его мы точно будем трогать только в случае глобальных изменений системы.

В заключении: Поняв простые принципы построения конфигурационных файлов Asterisk и научившись их немного читать, система уже не кажется такой сложной и “страшной”.