VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Отображение в логе номера оператора принявшего вызов

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

angelium
Сообщения: 7
Зарегистрирован: 25 янв 2011, 12:14

Отображение в логе номера оператора принявшего вызов

Сообщение angelium »

Стоит задача видеть в логе какой оператор из очереди принял вызов.
В лог идёт информация только об вызывающем абоненте и номере на который вызов приземляется. Но после приземления вызов становится в очередь которую обрабатывают несколько операторов.
Подскажите как возможно реализовать?
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Отображение в логе номера оператора принявшего вызов

Сообщение ded »

В стандартном выводе репортов CDR во всех сборках, где есть freePBX можно видеть более очеловеченные логи через вэб интерфейс, с использованием фильтров.
К сожалению, статус при входящем звонке в очередь виден - NOT ANSWER у неподнявших трубку операторов и ANSWERED только у принявшего звонок оператора, но нет фильтра по статусу. Но его можно дописать, ибо РНР доступен для восприятия.
angelium
Сообщения: 7
Зарегистрирован: 25 янв 2011, 12:14

Re: Отображение в логе номера оператора принявшего вызов

Сообщение angelium »

а если без freePBX?
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Отображение в логе номера оператора принявшего вызов

Сообщение ded »

1) Написать свой парсер текстовых логов CDR
2) Загружать CDR записи в MySQL и написать свой вариант вэб репортов
3) Найти готовый приемлемый для вас. Мир Open Source огромен!
angelium
Сообщения: 7
Зарегистрирован: 25 янв 2011, 12:14

Re: Отображение в логе номера оператора принявшего вызов

Сообщение angelium »

У меня это работает так:
Я гружу CDR записи в MySQL и написал свой вариант веб репортов.
Только вот если я отправляют вызов в очередь то в лог пишется не номер оператора принявшего вызов а номер на который вызов пришёл(аналогично содержимому переменной ${EXTEN}).
Как вариант решения я вижу загружать номер принявшего вызов оператора конструкцией same => n,Set(CDR(userfield)=${Оператор}) , но как получить номер оператора?
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Отображение в логе номера оператора принявшего вызов

Сообщение ded »

Мне трудно судить о вашем варианте вэб репортов, я его не видел. Зато вижу репорт в freePBX, который дёргаает из того же лога MySQL - вот вывод входящего звонка в очередь:

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

   Calldate  Channel Source Clid Dst Disposition Duration
1.  	2011-01-25 15:49:13 	Local/108@... 	4959701111 	"4959701111" <4959701111> 	108 	NO ANSWER 	00:02
2.  	2011-01-25 15:49:13 	Local/110@... 	4959701111 	"4959701111" <4959701111> 	110 	NO ANSWER 	00:02
3.  	2011-01-25 15:49:13 	Local/107@... 	4959701111 	"4959701111" <4959701111> 	107 	NO ANSWER 	00:02
4.  	2011-01-25 15:49:13 	Local/111@... 	4959701111 	"4959701111" <4959701111> 	111 	NO ANSWER 	00:02
5.  	2011-01-25 15:49:13 	Local/109@... 	4959701111 	"4959701111" <4959701111> 	109 	NO ANSWER 	00:02
6.  	2011-01-25 15:49:13 	Local/105@... 	4959701111 	"4959701111" <4959701111> 	105 	ANSWERED 	01:14
из которого видно, что поступил в очередь звонок от 4959701111, в очереди - операторы 105, 107, 108, 109, 110 и 111. На звонок ответил 105.
Что же у вас не получается?
angelium
Сообщения: 7
Зарегистрирован: 25 янв 2011, 12:14

Re: Отображение в логе номера оператора принявшего вызов

Сообщение angelium »

ded писал(а):Что же у вас не получается?
Не получается понять возможно ли реализовать мою потребность иметь в базе нужные данные которые я могу выдернуть скриптом. Вариант залезть в сорцы freePBX и курить как он это делает подходит но требует время. Я надеялся узнать как эту инфу лить в сам мускуль. Ибо в него льётся строго структурированные данные описанные например тут. Среди описанного там нет поля вывода оператора из очереди.
Сейчас внимательно просмотрев логи обнаружил что название канала (dstchannel) содержит номер оператора (SIP/365-c4bae2e8 где 365 номер оператора), но если оператор перевёл вызов то всё равно значится он. Эта "находка" позволит разобрать строку dstchannel и выдернуть номер оператора. Но может существует более прямой способ? Может есть алгоритм который позволит отобразить в мускуле и перенаправления и оператора в "чистом" виде?
Вложения
asteriskmysql.jpg
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Отображение в логе номера оператора принявшего вызов

Сообщение ded »

Судя по вашему логу у вас не очередь работает а ринг-группа. Когда звонок прибегает в группу, то в логе отображается действительно только номер ринг-группы, а не кто поднял трубу. Нужна именно очередь (Queue).

В ВашSQL льётся овтоматом при наличии модулей cdr_addon_mysql.so и app_addon_sql_mysql.so

Само-собой в /etc/asterisk/cdr_mysql.conf должно быть
[global]
hostname=localhost
dbname=asteriskcdrdb
password = mypass123
user = asteriskuser
userfield=1

Я думаю у вас так же устроено? Какая версия Астериска?
angelium
Сообщения: 7
Зарегистрирован: 25 янв 2011, 12:14

Re: Отображение в логе номера оператора принявшего вызов

Сообщение angelium »

ded писал(а):Судя по вашему логу у вас не очередь работает а ринг-группа. Когда звонок прибегает в группу, то в логе отображается действительно только номер ринг-группы, а не кто поднял трубу. Нужна именно очередь (Queue).
именно очередь. Вызывается командой:
exten => _74957ХХХХХХ,1,Answer()
...
same => n,Queue(operators)
Таких очередей несколько.

Правда в самой очереди настроено вызывать не агентов а акаунты из sip.conf
member => SIP/359,1
member => SIP/360,1
ded писал(а): В ВашSQL льётся овтоматом при наличии модулей cdr_addon_mysql.so и app_addon_sql_mysql.so
Само-собой в /etc/asterisk/cdr_mysql.conf должно быть
[global]
hostname=localhost
dbname=asteriskcdrdb
password = mypass123
user = asteriskuser
userfield=1

Я думаю у вас так же устроено? Какая версия Астериска?
Да всё именно так иначе бы я вообще ничего в мускуль не получал...
версия - Asterisk 1.6.2
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Отображение в логе номера оператора принявшего вызов

Сообщение ded »

Коллега switch имел ввиду
/var/log/asterisk/queue_log
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH