Диалплан

Вложенные контексты

Один контекст может включать другие контексты, обрабатываемые в порядке перечисления. Смотри также Порядок выбора нужного екстеншена при использовании шаблонов.

include => <context>[|<hours>|<weekdays>|<monthdays>|<months>]
Где <context> – включаемый контекст
опционально:
<hours> – часы в которые действителен контекст (например рабочее время 9:00-17:00)
<weekdays> -дни недели (mon-fri)
<monthdays> – дни
<month> – месяцы

Шаблоны

Екстеншены могут сопоставляться шаблону, вместо однозначно заданных цифр. Шаблон должен начинаться с символа подчеркивания ( _ ) и может использовать любой из следующих символов:

X – любая цифра от 0-9
N – любая цифра от 2-9
[14-6] – цифры 1,4, 5 и 6
. – любые возможные символы.

Переменная ${EXTEN:1} удаляет префикс:

${123456789:1} – возвращает строку 23456789
${123456789:-4} – возвращает строку 6789
${123456789:0:3} – возвращает строку 123
${123456789:2:3} – возвращает строку 345
${123456789:-4:3} – возвращает строку 678

MixMonitor по датам и папкам
Set(CALLFILENAME=/home/asterisk/outgoing/local/${STRFTIME(${EPOCH},,%Y-%m)}/${STRFTIME(${EPOCH},,%d)}/${CALLERID(num)}-${EXTEN}_${STRFTIME(${EPOCH},,%d-%m-%y__%H-%M)}); MixMonitor(${CALLFILENAME}.wav);

Asterisk auto answer
context auto-answer {
_XXX => {
Set(ALERTINFO=Alert-Info: Ring Answer);
Set(CALLINFO=Call-Info: ;answer-after=0);
Set(SIPURI=intercom=true);
execIf($[“${ALERTINFO}” != “”]?SipAddHeader(${ALERTINFO}));
execIf($[“${CALLINFO}” != “”]?SipAddHeader(${CALLINFO}));
execIf($[“${SIPURI}” != “”]?Set(__SIP_URI_OPTIONS=${SIPURI}));
Dial(SIP/${EXTEN},,tT);
Hangup(); };
};

-----------------------------------------------------------------------------