Запутался. Не ожидал сложности в выполняемой задаче. Полазил по темам - вроде такое есть и поведение считается нормальным. Но мне кажется, что я что-то недопонимаю.
Нужно сделать голосовую почту с двумя сообщениями - абонент занят или недоступен. Тут понятно, ставим опции b и u в VoiceMail, проверяем статус вызова после DIAL() и счастье. Как оказалось BUSY в данном случае - это когда вызываемый абонент отклонил вызов. Если же он просто разговаривает, то ${DIALSTATUS} выдает CHANUNAVAIL. Установлено для всех абонентов call-limit=1 и busylevel=1.
1. Правильно ли я понял, что такое поведение asterisk правильное и с помощью ${DIALSTATUS} я не получу информации о занятости?
2. Обошел данную проблему путем проверки состояния аппарата - DEVICE_STATE. Правильное ли решение или костыль?