воскресенье, 6 января 2013 г.



Asterisk. Простые очереди queues. 

Для примера создадим очередь вызовов для приемом звонков в техническую поддержку.

1. Открываем файл /etc/asterisk/queues.conf

2. Приводим файл примерно к такому виду:

[general]
persistentmembers = yes
autofill = yes

[queue-support] ;Название нашей очереди
music = default ;Во время ожидания будет звучать музыка по умолчанию
strategy = ringall ;В очереди будут звонить все телефоны одновременно
timeout = 60
retry = 5
maxlen = 0
joinempty = yes ;разрешать входить в очередь даже в том случае,
   ;если все операторы не доступны
ringinuse = no

;Блок для анонса позиции в очереди
announce-frequency = 30 ;частота анонсов
announce-holdtime = no ;не объявлять приблизительное время ожидания
announce-position = limit ;если очередь слишком велика (более 6 вызовов), то
announce-position-limit = 6 ;информация о позиции выдаваться не будет, что бы
;не пугать пользователей

;Описываются пути к речевым файлам,
;которые используются для нашей простой очереди
queue-youarenext = /etc/asterisk/sounds/support/queue-youarenext
queue-thereare = /etc/asterisk/sounds/support/queue-thereare
queue-callswaiting = /etc/asterisk/sounds/support/queue-callswaiting
queue-thankyou = /etc/asterisk/sounds/support/queue-thankyou

;Описываем телефоны, которые будут принимать вызовы.
member=>SIP/11
member=>SIP/12
member=>SIP/13
member=>SIP/14
member=>SIP/15

3 Выкладываем звуковые файлы по указанным путям.

4 Открываем файл /etc/asterisk/sip.conf

5 Добавляем в файл номера, указанные в параметре member. Пример для одного номера:

[11](subscriber)
context=customer_support
callerid="9735332" <9735332>
username=11
secret=*******
call-limit=1
callgroup=17
pickupgroup=17
dtmfmode=rfc2833
deny = 0.0.0.0/0.0.0.0
permit = 10.100.14.253/255.255.255.255
Здесь 9735332 – номер под которым будет совершать исходящие звонки абонент 11.

6 Открываем файл /etc/asterisk/extensions.conf

7 Добавляем в него контекст вызовов. Например:

exten => 101,1,Answer()
exten => 101,n,Background(/etc/asterisk/sounds/support/ivr-techpodderzhka)
exten => 101,n,WaitExten(5)
exten => 101,n,Set(CALLERID(all)="9735332" <9735332>)
exten => 101,n,Dial(${OUTTRUNKSI}/88007750770,120,r)
exten => 1,1,Set(CALLERID(all)="9735332" <9735332>)
exten => 1,n,Dial(${OUTTRUNKSI}/88007750770,120,r)
exten => i,1,Set(CALLERID(all)="9735332" <9735332>)
exten => i,n,Dial(${OUTTRUNKSI}/88007750770,120,r); если клиент набрал
   ;несуществующий номер пункта меню
exten => 2,1,Set(CALLERID(all)="9735332" <9735332>)
exten => 2,n,Dial(SIP/11&SIP/12&SIP/13&SIP/14&SIP/15,r)
exten => 2,n,Playback(/etc/asterisk/sounds/support/queue-vsezanyaty)
exten => 2,n,Queue(queue-support)

Здесь подразумевается, что после приветствия, пользователь должен нажать «1» или «2». В случая, нажатия «1», вызов передается в единый контакт центр по номеру 88007750770. Если абонент нажал «2», то сначала происходит одновременный дозвон всем операторам, если никто не ответил или занят, то проигрывается сообщение о том, что вызов переводиться в очередь. Затем включается сам механизм очередей. Команда Queue(queue-support).

8. Рестартуем модули Asterisk, которые подверглись редактированию:
asterisk*CLI> queue reload all
asterisk*CLI> sip reload
asterisk*CLI> dialplan reload

9. Все. Конфигурирование закончено.

Посмотреть статус очереди можно в консоли Asterisk командой
queue show queue-support

1 комментарий:

  1. Dial(SIP/11&SIP/12&SIP/13&SIP/14&SIP/15,r) вот при таком раскладе формируются 5 записей в CDR на 1 звонок... Not good..

    ОтветитьУдалить