AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Queue leastrecent and pause

Asterisk IP PBX 9 сообщений -
#1

Клиент захотел стратегию leastrecent, при этом возникла следующая проблема. Когда звонок поступает на оператора, который не может ответить на звонок, по истечению 15 сек нужно этого оператора поставить на паузу и закинуть на другого оператора. Используем Реалтайм. Хотел прикрутить скриптик, который будет кидать запрос в базу и ставить там на паузу, но есть вопрос с тем, как отловить того, на кого направляли звоночек...
#2

Тяжело. У меня тригером запись звонка разворачивается в одну строку и апдейтится каждым ивентом.
Если используешь стандартный лог, то:
1. По А-номеру клиента ищешь все ИД его звонков, поиск по ивенту ENTERQUEUE и DATA2
2. Из этих ИД выбираешь обработанные и заверщенные звонки. Записи звонка должны содержать COMPLETE% или TRANSFER
3. Выбираешь ИД с максимальным значением, и по ивенту CONNECT, ищешь номер агента.

Встречный вопрос. Таблица мемберов у вас работает "из дистрибутива" или патчили?

_________________
e=mc^2
#3

да вот и я думал тригером, но как-то немного не то... сейчас изучаю ещё этот вопрос, если сделаю, отпишусь.
Таблицу разворачивал с дистрибутива.
#4

На чем база? могу поделится тригером.


А можешь показать таблицу мемберов, с заполненными данными, у меня что-то не вышло по дефолту с нее работать. Не выбирался интерфейс мембера из таблицы.

_________________
e=mc^2
#5

INSERT INTO `queue_members` (`uniqueid`, `membername`, `queue_name`, `interface`, `penalty`, `paused`) VALUES
(516, '115', 'callc1', 'SIP/115', NULL, 0),
(517, '116', 'callc1', 'SIP/116', NULL, 0),
(526, '147', 'callc1', 'SIP/147', NULL, 0),
(515, '114', 'callc1', 'SIP/114', NULL, 0),
(518, '119', 'callc1', 'SIP/119', NULL, 0),
(523, '117', 'callc1', 'SIP/117', NULL, 0),
(527, '111', 'callc1', 'SIP/111', NULL, 0),
(512, '112', 'callc1', 'SIP/112', NULL, 0),
(528, '113', 'callc1', 'SIP/113', NULL, 0),
(522, '149', 'callc1', 'SIP/149', NULL, 0),
(524, '122', 'callc1', 'SIP/122', NULL, 0),
(525, '124', 'callc1', 'SIP/124', NULL, 0),
(529, '118', 'callc1', 'SIP/118', NULL, 0),
(530, '120', 'callc1', 'SIP/120', NULL, 0),
(531, '126', 'callc1', 'SIP/126', NULL, 0),
(532, '129', 'callc1', 'SIP/129', NULL, 0),
(533, '130', 'callc1', 'SIP/130', NULL, 0);
#6

хм. нужно попробовать, а таблица такая?
create table TBL_AST_Q_MEMBER
(
uniqueid NUMBER,
membername VARCHAR2(40),
queue_name VARCHAR2(128),
interface VARCHAR2(128),
penalty NUMBER,
paused NUMBER,
state_interface VARCHAR2(128)
)

_________________
e=mc^2
#7

uniqueid Integer,
membername VARCHAR2(40),
queue_name VARCHAR2(128),
interface VARCHAR2(128),
penalty Integer,
paused Integer,
#8

Код:
autopause=all
timeout=15


Не оно?
#9

кажись оно, спасибо.
На днях проверю