Приведу пример маршрутизации звонков по времени в Asterisk.
Допустим в файле /etc/asterisk/extensions.conf есть настроенный контекст для транка со следующими параметрами:
[Trunk_2] exten => s,1,DIAL(SIP/6004&SIP/6003,19) exten => s,2,Hangup()
И чтобы разрулить звонки по времени на разные телефоны укажем для контекста этого транка только вложенные контексты:
[Trunk_2] include => daytime,8:00-18:00,mon-sat,*,* include => nighttime,18:00-8:00,mon-sun,*,* include => sunday,8:00-22:00,sun,*,*
По сути daytime, nighttime, sunday это только названия контекстов, для которых прописано время в контексте [Trunk_2], их можно называть как угодно.
И потом в этих отдельных контекстах уже пропишем нужные екстеншены.
То есть, днем:
[daytime] exten => s,1,DIAL(SIP/6004&SIP/6003,19) exten => s,2,Hangup()
Ночью:
[nighttime] exten => s,1,DIAL(SIP/6002,19) exten => s,2,Hangup()
И в воскресенье:
[sunday] exten => s,1,DIAL(SIP/6002,19) exten => s,2,Hangup()
Можно также например создать контекст holiday с праздничными днями:
include => holiday,*,*,1,jan include => holiday,*,*,8,mar
и т.д.
Для тех кто хочет расписать подробнее по дням, приведу список дней на английском:
mon — Monday — Понедельник
tue — Tuesday — Вторник
wed — Wednesday — Среда
thu — Thursday — Четверг
fri — Friday — Пятница
sat — Saturday — Суббота
sun — Sunday — Воскресенье
Аналогично сокращаются до трех букв и названия месяцев.