Здесь бы хотел указать один из возможных вариантов удобного планирования диалплана в случае наличия филиалов с разной нумерацией.
Суть примерно следующая: каждый телефон в филиале размещается в своем контексте (например in_ekb, in_spb, in_msk и тп.). В каждом контексте указываются правила набора для исходящих звонков. Чтобы можно было совершать звонки между филиалами, каждый контекст содержит в себе один общий внутренний контекст, в котором указываем правила для внутренних звонков между филиалами. Примерная схема (внутренняя нумерация филиалов - например ekb 51XX, spb - 52XX):
Чем удобна данная схема для меня: основной файл диалплана остается минимально захламленным от конфигов для различных контекстов, все они вынесены в отдельные файлы.
P.S. В связи с тем, что диалплан или пиры приходится частенько редактировать, очень желательно использовать что-нибудь наподобие гита для отслеживания изменений конфигов, с целью потом посмотреть историю изменений в случае какой-либо поломки:
#apt-get install git #cd / #cat .gitignore /* !/etc /etc/* !/etc/asterisk #git init #git add . #git commit -a -m "первый коммит" #nano /etc/asterisk/extensions.conf #git commit -a -m "поменял пароль на пир 5201; отредактировал диалплан для msk"
В данных командах поставили гит, указали что будем отслеживать только папку /etc/asterisk, поместили все файлы под версионный контроль, изменили файл extensions.conf, зафиксировали изменение в гите с комментариями что конкретно было сделано.