То же и для очереди, вызванной с опцией "c", в контексте n проверяем состояние переменной ${QUEUESTATUS} (TIMEOUT, FULL, JOINEMPTY, LEAVEEMPTY, JOINUNAVAIL, LEAVEUNAVAIL, CONTINUE - нормальный выход)
viktorkho ( 2012-11-30 20:51:41 +0400 )редактироватьПодскажите еще такую штуку. Клиент набирает номер оператора, например 120, если оператор не берет 20 секунд трубку, срабатывает переадресация на его мобильный, но бываю ситуации что человеку надоело ждать и он кладет трубку. Вопрос, как сделать отправку смс именно на тот номер, на который была переадресация? Сейчас смс отсылает на один номер одному оператору, но это не правильно. Спасибо!
vlad.v ( 2012-12-06 13:40:09 +0400 )редактироватьНу это тоже не сложно. Переадресация у вас выполняется средствами телефона или через диалплан?
Но в любом случае надо сделать чтобы астер знал соответствие внутреннего номера и мобильного. один из вариантов сделать через внутренюю базу астериска, добавить туда запись и потом из диалпплана вызывать. К примеру так : ${DB(notice/${extenfornotice})} где notice - это имя семейства в базе астера, а extenfornotice имя записи, тогда если в самой записи будет мобильный то его и выведет, дальше дело техники.
Безусловно можно использовать любой другой способ хранения, тот же скуль к примеру. Ну или в лоб перебрать в диалплане все номера с уведомлением, через макрос к примеру.
Злобный Мыш ( 2012-12-07 10:33:24 +0400 )редактировать
Помогите понять что не так делаю, пробую просто вывести статус звонка: h => { NoOp(${DIALSTATUS}); }
и получаю вот такой вывод: Executing [h@incoming:1] NoOp("Datacard/datacard1-010000002c", "") in new stack
Чего не выводиться Dialstatus? Спасибо!
Нашел ответ на свой вопрос, частично. Походу статус начинает отображаться только если пошел вызов к абоненту, если человек положил трубку когда говорил IVR, то статус пустой.
vlad.v ( 2012-12-05 14:27:24 +0400 )редактироватьКонечно пустой. Эту переменную задает команда Dial и если она не вызывалась то и переменная пустая.
Злобный Мыш ( 2012-12-07 08:11:49 +0400 )редактировать