Приоритет в очередях звонков Asterisk

Asterisk обрабатывает звонки в очередях по принципу FIFO, т.е. звонки будут обрабатываться один за одним по мере их поступления в очередь. Но если вы хотите каким-то клиентам предоставить приоритетное обслуживание? Для таких целей приложение Queue имеет опцию приоритета при постановке звонка в очередь.

Теперь разобьем общую задачу на более мелкие:
1) Первым делом нужно определить, нужно ли звонку выставить более высокий приоритет
2) Выставить приоритет
3) Поставить звонок в очередь

Все эти задачи реализованы в контексте:

[queue]
exten => s,1,GotoIf(${DB_EXISTS(vipclients/${CALLERID(num)})}?setprior)
exten => s,n,Set(QUEUE_PRIO=5)
exten => s,n(gotoqueue),Queue(manager-queue)
exten => s,n,Hungup()
exten => s,n(setprior),Set(QUEUE_PRIO=10)
exten => s,n,Goto(gotoqueue)

exten => h,1,Hangup()
exten => i,1,Hangup()

В первой строчке проверяется база astdb на наличие номера в семействе vipclients (в это семейство будут помещаться номера с повышенным приоритетом). Если номер есть в базе, то звонок перекидывается к метке setprior, где выставляется более высокий приоритет, после чего звонок перекидывается в очередь (gotoqueue).


Tags:

Воскресенье, Май 24th, 2009 Советы
Cheap Retro Replica NFL NBA MLB Throwback Football Basketball Jerseys | hp printer ink cartridges refills| Jewelry Making Supplies | Thumb Joint Pain | Dog Health Problems |Tinkerbell Personal Checks |Garden Planters