Страница 1 из 1

away/online оператора

Добавлено: 03 авг 2012, 16:39
mapt
Добрый день!

Возникла задача контролировать статус оператора и маршрутиризировать звонки в зависимости от статуса (если оператор ушел с рабочего места, не перенаправлять на него звонки).

Хотелось бы узнать, каким образом можно это сделать?
в качестве клиента используем 3cxPhone, в качестве сервера asterisk 1.8.14.

Идеально через статусы клиента, но они не работают...
Второй пришедший в голову способ: прозванивать операторов каждые 10-20 минут и при недозвоне выставлять их статус в какое-то значение.

Сталкивался ли кто-либо, прошу подсказать опыт реализации, и если возможно, ссылки на документацию/пример?

Re: away/online оператора

Добавлено: 03 авг 2012, 16:49
SolarW
В FreePBX есть такой чудный код - *45
Присоединяет динамического агента к обслуживанию очереди.
Т.е. если у вас есть очередь с номером скажем 800 то набрав с софт-фона номер *45800 вы подключаетесь к обслуживанию этой очереди а набрав этот номер повторно - отключаетесь.
Когда отключены - звонки соответственно не идут.
В 3CX Phone можете забить эту комбинацию на Speed Dial Button что на левой панели.

Re: away/online оператора

Добавлено: 03 авг 2012, 16:57
mapt
freePbx это здорово, но хотелось бы обойтись без него

Re: away/online оператора

Добавлено: 03 авг 2012, 17:00
ded
Эта фича называется presense, реализуется кнопкой DND (do not disturb), такие кнопки есть на хардварных и софтварных ИП телефонах.
И/или хинтами, тут в соседней ветке как-раз обсуждают с примерами.

Re: away/online оператора

Добавлено: 03 авг 2012, 17:10
SolarW
Еще в AMI интересная команда есть - QueuePause
Я так подозреваю что из диалплана можно какой-то ее аналог использовать.

Re: away/online оператора

Добавлено: 03 авг 2012, 18:22
Samael28
Есть чудная команда AddQueueMember и RemoveQueueMember. И никаких FreePBX

Re: away/online оператора

Добавлено: 05 авг 2012, 14:32
mapt
сделал попроще

Код: Выделить всё

exten => off,1,Set(DB(presence/${CALLERID(number)})=false)
exten => off,n,HangUp()
exten => on,1,Set(DB(presence/${CALLERID(number)})=true)
exten => on,n,HangUp()
и для своих цепочек соответственно

Код: Выделить всё

exten => s,1,GotoIf($[${DB(presence/49)} = false]?3:2)
тут_два_набора_правил_в_зависимости_от_доступности
Сотрудник уходя набирает off, приходя on, и все...