Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Переадресация при отсутствии операторов в очереди

0

Здравствуйте,

Прошу помощи вот в таком вопросе, мне необходимо что бы при отсутствии всех операторов в очереди звонок переадресовывался на мобильный телефон, если и он недоступен или занят то на второй мобильный телефон. Вот мой конфиг

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 как пример, если заработает подставлю туда диал на мобильник.

удалить закрыть спам изменить тег редактировать

спросил 2011-05-31 20:28:23 +0400

godlike Gravatar godlike flag of Ukraine
814 92 24 62

обновил 2011-06-01 17:06:44 +0400

2 Ответа

1

во первыйх вот

${QUEUESTATUS}: The status of the call as a text string.
    TIMEOUT
    FULL
    JOINEMPTY
    LEAVEEMPTY
    JOINUNAVAIL
    LEAVEUNAVAIL
    CONTINUE

во вторых если номера мобильных внести как агентов, но с пенальти, то будет именно то что вам надо.

ссылка удалить спам редактировать

ответил 2011-05-31 20:42:52 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

Спасибо огромное, сейчас попробую godlike ( 2011-05-31 20:47:48 +0400 )редактировать
Вот только если я введу их с пенальти то при занятости (а не недоступности) оно будет звонить им на мобильный. То есть оператор 1 и 2 будут говорить, в это время позвонит 3й клиент и у первого оператора начнет звонить телефон что недопустимо, ведь 3й клиент должен встать в очередь. Я правильно понимаю? godlike ( 2011-05-31 20:51:29 +0400 )редактировать
ну тогда делайте через hint например. если оба не зарегистрированы, то в другую очередь. ну или звоните через local. ставьте group при ответе. ну и дальше анализируйте.вообще дофига вариантов. вам должно быть виднее. meral ( 2011-05-31 23:26:11 +0400 )редактировать
еще есть leavewhenempty = yes в конфиге. тогда будет сразу вылетать со статусом LEAVEEMPTY meral ( 2011-05-31 23:27:58 +0400 )редактировать
спасибо, попробую godlike ( 2011-06-01 09:05:48 +0400 )редактировать
не выходит, выше указал как делаю, есть идеи? :( godlike ( 2011-06-01 19:30:41 +0400 )редактировать
без понятия. а вывести эту переменную и посмотреть что там не судьба? exten =>XXXXXX,6,Dumpchan. оно у вас вообще выходит из очереди или нет? таймаут там в очереди стоит? meral ( 2011-06-01 21:16:00 +0400 )редактировать
0

Я знаю что некропостинг, но может кому поможет. Можно делать проверку на колличество агентов в очереди.

exten => XXXXXXXX,1,GotoIf($[${QUEUE_MEMBER_COUNT(quenename)}<1]?redirect,1)
ссылка удалить спам редактировать

ответил 2012-03-15 20:13:45 +0400

zunkree Gravatar zunkree
133 3 5

Comments

а чем это лучше QUEUSTATUS/joinempty=no?

meral ( 2012-03-15 20:37:13 +0400 )редактировать

ну че, неплохо, joinempty=no это частный случай ${QUEUEMEMBERCOUNT(quenename)}<1, вдруг кому то нужно будет обработать событие когда нужно прыгнуть куда то если в очереди меньше N агентов

godlike ( 2012-03-16 00:43:05 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2011-05-31 20:28:23 +0400

Просмотрен: 2,861 раз

Обновлен: Mar 15 '12

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.