Ограничиваем звонки определенному абоненту
Бывает такое что надо сделать чтоб некоторые номера не могли совершать звонки в определенное время. Вот и в моем случае встала такая задача.
Было быстро найдено решение ввиде конструкции:
exten => _[24]XXXXXX/101,1,GotoIfTime(09:00-18:00|mon-fri|*|*?2:6)
exten => _[24]XXXXXX/101,2,Dial(SIP/${EXTEN}@ttknn,,Tt)
exten => _[24]XXXXXX/101,3,Dial(SIP/${EXTEN}@ttknn1,,Tt)
exten => _[24]XXXXXX/101,4,Dial(SIP/${EXTEN}@ttknn2,,Tt)
exten => _[24]XXXXXX/101,5,Dial(SIP/${EXTEN}@ttknn3,,Tt)
exten => _[24]XXXXXX/101,6,Hangup();
Но конструкция не заработала, потому что Астериск странно по своему сортирует правила в диалплане. Ну и соответственно первым выполнялось правило:
exten => _[24]XXXXXX,1,Dial(SIP/${EXTEN}@ttknn,,Tt)
Решение как всегда было очень простым, надо просто распихать эти правила по отдельным экстеншенам и сделать инклуд в наш диалплан в том порядке в котором нам надо.