Дальше

 

Часто спрашивают: «Что необходимо делать, если оператор отлучается, а вызовы считаются пропущенными?» Ответ довольно прост: «Оператор ставит себя на паузу, а по приходу снимает с паузы».

1. Как правильно строить работу операторов по приходу и уходу
2. Добавление диалплана в FreePBX

 

 

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


Если логика обработки вызовов отличается от «звонить всем», то чтобы не было холостых попыток вызова оператора, когда он куда-то вышел, необходимо сообщать об этом IP-АТС. Наиболее часто встречаемый и в то же время неправильный способ это когда ставят функцию DND на самом телефоне. Но надо понимать, что IP-АТС об этом ничего не знает и каждый раз пытается вызвать оператора, но получает отбой BUSY и в статистике появляются много вызовов занято. Другой вариант более предпочтительный: когда сам оператор добавляет себя в очередь обработки вызовов и выходит из очереди. Тогда супервизор видит, кто из операторов на месте, а кого нет. Те кто покинул очередь, в обработке вызовов не участвуют и вызовы впустую не бегают по очереди в поисках оператора, который сейчас на месте. Каждый вызов идет оператору, который готов принять вызов. Такой способ довольно хороший, но есть один минус. Непонятно пришел (или может уже ушел) оператор на работу (с работы) или просто отошел по своим делам. Самым правильным алгоритмом является следующий:

  • оператор пришел на работу и вошел в очередь или очереди;
  • если оператору необходимо сделать перерыв в работе, он ставит свой телефон «на паузу» на IP-АТС, набрав специальный код;
  • вернувшись с перерыва, оператор снимает свой аккаунт с паузы другим кодом;
  • когда оператор уходит домой, то выходит из очереди совсем.

При таком подходе в статистике все красиво: видно время прихода на работу, все перерывы оператора, когда оператор ушел с работы. Также онлайн супервизор может видеть полную картину: кто из операторов на работе, кто на перерыве, кто уже ушел с работы.

 

2. Добавление диалплана в FreePBX


Чтобы можно было осуществлять функции поставить на паузу/снять с паузы, необходимо добавить диалплан в файлы конфигурации FreePBX и применить настройки.

В файл extensions_custom.conf добавляем следующий диалплан:

[from-internal-custom]
exten => *101,1,Macro(agent-pause)
exten => *102,1,Macro(agent-unpause)
[macro-agent-pause]
exten => s,1,Answer
exten => s,1,Wait(1)
exten => s,n,Macro(user-callerid,SKIPTTL,)
exten => s,n,Set(CALLBACKNUM=${AMPUSER})
exten => s,n,PauseQueueMember(,Local/${CALLBACKNUM}@from-queue/n)
exten => s,n,QueueLog(NONE,${UNIQUEID},${DB(AMPUSER/${CALLBACKNUM}/cidname)},AGENTPAUSED)
exten => s,n,UserEvent(RefreshQueue)
exten => s,n,Wait(1)
exten => s,n,Playback(extension)
exten => s,n,Playback(dictate/paused)
exten => s,n,Wait(1)
exten => s,n,Hangup
; end of [macro-agent-pause]
[macro-agent-unpause]
exten => s,1,Answer
exten => s,1,Wait(1)
exten => s,n,Macro(user-callerid,SKIPTTL,)
exten => s,n,Set(CALLBACKNUM=${AMPUSER})
exten => s,n,UnpauseQueueMember(,Local/${CALLBACKNUM}@from-queue/n)
exten => s,n,QueueLog(NONE,${UNIQUEID},${DB(AMPUSER/${CALLBACKNUM}/cidname)},AGENTUNPAUSED)
exten => s,n,UserEvent(RefreshQueue)
exten => s,n,Wait(1)
exten => s,n,Playback(dictate/pause)
exten => s,n,Playback(cancelled)
exten => s,n,Wait(1)
exten => s,n,Hangup
; end of [macro-agent-pause]

Теперь по *101 оператор ставит себя на паузу, а по *102 — снимает с паузы.

Примечание: ответственность за этими действиями возлагается на оператора или супервизора