mysyslog.ru

24 Май 2009

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

написано в рубрике: voip — Метки: — constantine.malov @ 14:22

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

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

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

  1. [queue]
  2. exten => s,1,GotoIf(${DB_EXISTS(vipclients/${CALLERID(num)})}?setprior)
  3. exten => s,n,Set(QUEUE_PRIO=5)
  4. exten => s,n(gotoqueue),Queue(manager-queue)
  5. exten => s,n,Hungup()
  6. exten => s,n(setprior),Set(QUEUE_PRIO=10)
  7. exten => s,n,Goto(gotoqueue)
  8.  
  9. exten => h,1,Hangup()
  10. exten => i,1,Hangup()

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

Нет комментариев

Еще нет комментариев.

RSS лента комментариев к этой записи. TrackBack URL

Извините, комментирование на данный момент закрыто.

Работает на WordPress