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

вопрос по queue.log и agent

Newbies/FAQ Forum 10 сообщений -
#1

вопрос по queue.log и agent


Доброго времени суток!
Не так давно начал погружаться в настройку астериска, вопросов было много, но все решалось при помощи мануалов/гугла, но вот появилась одна проблема над которой бьюсь уже два дня, а решения найти не могу. Проблема в следующем: Звонок попадает в очередь, у члена очереди начинает звонить телефон, в этот момент в логе появляется строчка:
Код:

time callid queuename agent event data
1331099757 1331099754.2 support NONE ENTERQUEUE |


Далее если звонящий вешает трубку, лог начинает выглядить так:
Код:

time callid queuename agent event data
1331099757 1331099754.2 support NONE ENTERQUEUE |
1331099762 1331099754.2 support NONE ABANDON 1|1|5


Если бы член очереди поднял трубку, то лог выглядел бы так:
Код:

time callid queuename agent event data
1331098319 1331098316.2 support NONE ENTERQUEUE |
1331098325 1331098316.2 support SIP/1001 CONNECT 6|1331098319.3|5
1331098327 1331098316.2 support SIP/1001 COMPLETEAGENT 6|2|1


Проблема в следующем, я бы очень хотел контролировать пропущенные вызовы в очереди, а как следовательно, я бы хотел видеть в логах какому члену очереди адресуется звонок. Может быть кто-то сталкивался с подобным?

P.S. cdr не подходит т.к. запись появляется только по завершению вызова, а мне бы хотелось иметь возможность получить вышеупомянутую информацию в момент вызова.
#2

Для начала я бы запустил не просто логгер в csv-файл, а гнать его полноценно в mysql-базу. Там намного нагляднее видеть распределение-прохождение звонка по агентам. Пример:
Код:

callid queuename agent event data1 data2 data3 data4 data5 time

1321427764.0 300 NONE ENTERQUEUE 7812 1 2011-11-16 11:16:04.442828
1321427764.0 300 SIP/102 RINGNOANSWER 10000 2011-11-16 11:16:14.970902
1321427764.0 300 SIP/101 RINGNOANSWER 10000 2011-11-16 11:16:30.796322
1321427764.0 300 SIP/104 RINGNOANSWER 10000 2011-11-16 11:16:46.635719
1321427764.0 300 SIP/103 RINGNOANSWER 10000 2011-11-16 11:17:02.438135
1321427764.0 300 SIP/102 CONNECT 66 1321427827.5 2 2011-11-16 11:17:10.360790
1321427764.0 300 SIP/102 COMPLETEAGENT 66 51 1 2011-11-16 11:18:01.977994


_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#3

Спасибо, но все уже в базе, просто я для удобства чтения немного отформатировал лог.
Просмотрев, Ваш лог я увидел тоже самое что и у себя, если пройдет тайм-аут очереди, то в логе появиться строка, но если звонящий не дождется тайм-аута, то строки не будет и возможности отследить кто же пропустил вызов также не будет..

Код:
callid queuename agent event data1 data2 data3 data4 data5 time
1321427764.0 300 SIP/102 RINGNOANSWER 10000 2011-11-16 11:16:14.970902
#4

Не понял:
Код:

callid queuename agent event data1 data2 data3 data4 data5 time
1321446731.970 300 NONE ENTERQUEUE 7833 2 2011-11-16 16:32:12.026852
1321446731.970 300 SIP/103 RINGNOANSWER 10000 2011-11-16 16:32:22.565403
1321446731.970 300 SIP/102 RINGNOANSWER 10000 2011-11-16 16:32:38.374829
1321446731.970 300 NONE ABANDON 1 2 29 2011-11-16 16:32:41.221351

По моему очень даже понятно что 102 пропустил

_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#5

Код:
1321446731.970 300 SIP/103 RINGNOANSWER 10000 2011-11-16 16:32:22.565403

Данная строка появится в логе, только если в очереди прошел таймаут. К примеру: поступает звонок, он добавляется в очередь, проходит таумаут заданный в queue.conf, и только тогда появиться эта строка в логе, а если звонящий не дождется таймаута и повесит трубку, то будет просто:
Код:
1321446731.970 300 NONE ABANDON 1 2 29 2011-11-16 16:32:41.221351


Added after 29 minutes:

Еще один вопрос, как выяснилось в процессе, я почему-то не могу изменить стратегию очереди:

queues.conf:
Код:
[support]
music=default
stratetgy = linear
timeout = 20
member => SIP/1001
member => SIP/1005


Результат queue show:
Код:
asterisk*CLI> queue show
support has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s
Members:
SIP/1001 (Not in use) has taken no calls yet
SIP/1005 (Unknown) has taken no calls yet
No Callers


Почему-то стратегия всегда ringall.


Последний раз редактировалось: mik (Ср Мар 07, 2012 09:27)
#6

А queue reload all делал?
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#7

Делал:
Код:
asterisk*CLI> queue reload all
[Mar 7 12:24:03] NOTICE[27859]: app_queue.c:5673 reload_queue_rules: queuerules.conf has not changed since it was last loaded. Not taking any action.


И /etc/init.d/asterisk restart тоже делал.

Причем, добавлять/удалять членов очереди я могу, и в консоли изменения отображаются, а вот изменить стратегию не получается.

Added after 59 minutes:

Разобрался, просто досадная опечатка:
Цитата:
stratetgy = linear


Но основной вопрос все еще актуален.
#8

Здравствуйте. Присоединяюсь к вопросу, правда у меня цель немного другая - пытаюсь дополнить лог очереди номером звонящего, на момент события ENTERQUEUE, но данный номер появляется в cdr со статусом ANSWERED, почему-то, только по завершению вызова... Кто-нибудь сталкивался?
#9

Давайте сначала поймем поисходящее. 1. Пришел звонок и получил UID собственный. 2. Перекинут в очередь с этим UID 3. Обслужен/завершен 4. Идет запись в CDR инфы о нем.
Т.е. запись логов событий очереди и CDR разные по времени. Их можно ПОТОМ связать в sql-запросе. А на лету .... ну могете подправить исходник логгирования очереди впихнув туда доп. поле и значение CID в канале.

_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#10

Wapo, спасибо за ответ!

..нашел logger.c, буду разбираться, хотя подход, на мой взгляд, сомнительный Confused