Здравствуйте,
Прошу помощи вот в таком вопросе, мне необходимо что бы при отсутствии всех операторов в очереди звонок переадресовывался на мобильный телефон, если и он недоступен или занят то на второй мобильный телефон. Вот мой конфиг
exten => XXXXXXXXX,1,GotoIfTime(21:00-9:00|*|*?voicemail,s,1)
exten => XXXXXXXXX,n,Answer
exten => XXXXXXXXX,n,Wait(1)
exten => XXXXXXXXX,n,Set(channel=${FILTER(0123456789qwertyuiopasdfghjklzxcvbnm,${CDR(channel)})})
exten => XXXXXXXXX,n,Set(fname=${EPOCH}-${CHANNEL(channeltype)}-${channel})
exten => XXXXXXXXX,n,MixMonitor(/home/asterisk/${fname}.wav,b)
exten => XXXXXXXXX,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?busy:unavail)
exten => XXXXXXXXX,n(unavail),Voicemail(999@vmail,u,s)
exten => XXXXXXXXX,n,Queue(managers,t,,)
exten => XXXXXXXXX,n,Hangup
Вот только как я понимаю конструкция
exten => XXXXXXXXX,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?busy:unavail)
exten => XXXXXXXXX,n(unavail),Voicemail(999@vmail,u,s)
прокатывает только в случае с обычным диалом, а как же можно сделать подобную фичу в очереди? То есть что бы сохранялась функциональность очереди с очередями и прочим но при отсутствии обоих операторов астериск пытался позвонить им на мобильные
Подскажите пожалуйста, очень нужно это сделать
А когда оно должно устанавливать эту переменную ${QUEUESTATUS} ? У меня такая схема не срабатывает:
exten => XXXXXXXXX,1,GotoIfTime(21:00-9:00|*|*?voicemail,s,1)
exten => XXXXXXXXX,2,Set(channel=${FILTER(0123456789qwertyuiopasdfghjklzxcvbnm,${CDR(channel)})})
exten => XXXXXXXXX,3,Set(fname=${EPOCH}-${CHANNEL(channeltype)}-${channel})
exten => XXXXXXXXX,4,MixMonitor(/home/asterisk/${fname}.wav,b)
exten => XXXXXXXXX,5,Queue(managers,t,,)
exten => XXXXXXXXX,6,GotoIf($["${QUEUESTATUS}" = "LEAVEEMPTY"]?7:8)
exten => XXXXXXXXX,7,Voicemail(999@vmail,u,s)
exten => XXXXXXXXX,8,Hangup
В чем моя ошибка? Я привел здесь вызов Voicemail как пример, если заработает подставлю туда диал на мобильник.
во первыйх вот
${QUEUESTATUS}: The status of the call as a text string.
TIMEOUT
FULL
JOINEMPTY
LEAVEEMPTY
JOINUNAVAIL
LEAVEUNAVAIL
CONTINUE
во вторых если номера мобильных внести как агентов, но с пенальти, то будет именно то что вам надо.
Я знаю что некропостинг, но может кому поможет. Можно делать проверку на колличество агентов в очереди.
exten => XXXXXXXX,1,GotoIf($[${QUEUE_MEMBER_COUNT(quenename)}<1]?redirect,1)
ну че, неплохо, joinempty=no это частный случай ${QUEUEMEMBERCOUNT(quenename)}<1, вдруг кому то нужно будет обработать событие когда нужно прыгнуть куда то если в очереди меньше N агентов
godlike ( 2012-03-16 00:43:05 +0400 )редактироватьЗадан: 2011-05-31 20:28:23 +0400
Просмотрен: 2,904 раз
Обновлен: Mar 15 '12
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.