По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Channel event logging (события на канале) – система, созданная для детального логирования телефонных событий. Система CEL позволяет пошагово отслеживать сложные сценарии вызовов, последовательно записывая их в таблицу данных. Сегодня расскажем о типах событий CEL и о содержимом таблицы ‘cel’
?
Как и обычно, подключаемся к базе данных asteriskcdrdb:
[root@asterisk]# mysql // подключаемся к MySQL
mysql> use asteriskcdrdb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
Смотрим содержимое таблица cel, видим поля и типы данных:
mysql> show columns from cel;
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| eventtype | varchar(30) | NO | | NULL | |
| eventtime | datetime | NO | | NULL | |
| cid_name | varchar(80) | NO | | NULL | |
| cid_num | varchar(80) | NO | | NULL | |
| cid_ani | varchar(80) | NO | | NULL | |
| cid_rdnis | varchar(80) | NO | | NULL | |
| cid_dnid | varchar(80) | NO | | NULL | |
| exten | varchar(80) | NO | | NULL | |
| context | varchar(80) | NO | MUL | NULL | |
| channame | varchar(80) | NO | | NULL | |
| appname | varchar(80) | NO | | NULL | |
| appdata | varchar(80) | NO | | NULL | |
| amaflags | int(11) | NO | | NULL | |
| accountcode | varchar(20) | NO | | NULL | |
| uniqueid | varchar(32) | NO | MUL | NULL | |
| linkedid | varchar(32) | NO | MUL | NULL | |
| peer | varchar(80) | NO | | NULL | |
| userdeftype | varchar(255) | NO | | NULL | |
| extra | varchar(512) | NO | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
20 rows in set (0.00 sec)
К описанию таблицы CEL мы вернемся чуть позже, а сейчас давайте разберем возможные события в рамках системы Channel Event Logging :
Событие
Описание
CHAN_START
Канал связи был создан
CHAN_END
Канал связи был разорван
LINKEDID_END
Канал связи с указанным ID был разорван
ANSWER
На созданном канале связи ответили на звонок. При звонке в город, данное событие генерируется когда удаленный (вызываемый абонент) поднимет трубку
HANGUP
Была повешена трубка. Как правило, это событие сразу же сопровождается событием CHAN_END. Разница в том, что HANGUP происходит когда трубка положена, а CHAN_END, когда Asterisk освободил все ресурсы, занимаемые этим каналом
APP_START
Определенное приложение было запущено для этого канала. Например, это может быть Dial, Busy или Congestion
APP_END
Указанное приложение в событие APP_START завершило свое выполнение
PARK_START
Была произведена «Парковка» вызова. Функция парковки, представляет собой определенный номер, в который помещается вызов, работу с которым, могут продолжить другие сотрудники.
PARK_END
Вызов был снят с «Парковки»
BRIDGE_START
Между двумя каналами образовалось соединение (мост). Данное событие сопровождает такие приложения, как Dial() или Queue()
BRIDGE_END
Мост между каналами был разрушен
BRIDGE_UPDATE
В соединении между каналами произошло обновление. Это события появляется тогда, например, если изменится имя или прочая канальная информация
BLINDTRANSFER
Был выполнен «слепой» (без предварительной консультации) трансфер
ATTENDEDTRANSFER
На канале был выполнен трансфер с предварительной консультацией
USER_DEFINED
Кастомное событие, которое определяется в приложении CELGenUserEvent()
В таблице выше мы перечислили основные события в рамках системы CEL. Теперь перейдем к описанию таблицы ‘cel’ в рамках базы asteriskcdrdb:
Столбец
Пример значения
Описание
eventtype
CHAN_START
Имя произошедшего события (все события описаны в таблице выше)
eventtime
2016-04-01 14:53:54
Время, в которое произошло указанное выше событие
cidname
Oleg Ivanov
Имя, передаваемое в рамках CallerID (CID), закрепленное за данным каналом
cidnum
84991111111
Номер, передаваемый в рамках CallerID (CID), закрепленный за данным каналом в рамках соответствующего события
cidani
84991111111
Automatic Number Identification (ANI), или другими словами – автоматическое определение номера на данном канале в рамках соответствующего события
cidrdnis
84991111234
Номер перенаправления на данном канале в рамках соответствующего события
ciddnid
84993456458
Набранный номер на канале в рамках соответствующего события
exten
7057
Добавочный номер, который был набран, в рамках плана нумерации
context
Local
Контекст для добавочного номера, который был набран
channame
SIP/0007B3060EB4-00000010
Имя установленного канала
appname
Dial
Название приложения, которое было выполнено
appdata
SIP/0007B3060EB4
Параметры, которые были переданы в приложении согласно плана нумерации
amaflags
DOCUMENTATION
Метка Automatic Message Accounting (AMA) – автоматический учет стоимости вызова.
accountcode
6473
Идентификатор аккаунта. Данное значение пустое по умолчанию, и определяется параметрами конкретного пользователя.
uniqueid
6547653456.18332
Уникальный идентификатор для канала
userfield
Chto ugodno
Пользовательское поле
linkedid
6547653456.18332
Данный идентификатор, позволяет связать воедино звонок по частям. Например, если одна часть звонка была входящей из города, следом был трансфер, потом еще один – у все этих вызовов будет разный uniqueid, но одинаковый linkedid
peer
SIP/0007B306054F-00000020
Название канала, к которому, который соединен (bridge) с каналом с идентификатором channame
Теперь, давайте рассмотрим как выглядит запись в таблице ‘cel’. Для этого выполним нижеследующий запрос к базе данных asteriskcdrdb:
mysql> SELECT * FROM `cel` WHERE `uniqueid` = '1459503113.15';
+------+------------+---------------------+-------------+-------------+-------------+-----------+----------+-------------+------------------+--------------------------------------------+------------+----------------------------------------------------------------------------------+----------+-------------+---------------+---------------+------+-------------+----------------------------------------------------------------------------+
| id | eventtype | eventtime | cid_name | cid_num | cid_ani | cid_rdnis | cid_dnid | exten | context | channame | appname | appdata | amaflags | accountcode | uniqueid | linkedid | peer | userdeftype | extra |
+------+------------+---------------------+-------------+-------------+-------------+-----------+----------+-------------+------------------+--------------------------------------------+------------+----------------------------------------------------------------------------------+----------+-------------+---------------+---------------+------+-------------+----------------------------------------------------------------------------+
| 2339 | CHAN_START | 2016-04-01 12:31:53 | | | | | | 89641111111 | from-internal | Local/89641111111@from-internal-00000004;2 | | | 3 | | 1459503113.15 | 1459503090.11 | | | |
| 2346 | APP_START | 2016-04-01 12:31:53 | 79252222222 | 79252222222 | 79252222222 | | | recordcheck | sub-record-check | Local/89641111111@from-internal-00000004;2 | MixMonitor | 2016/04/01/out-89641111111-79252222222-20160401-123153-1459503113.15.wav,ai(LOCA | 3 | | 1459503113.15 | 1459503090.11 | | | |
| 2347 | APP_END | 2016-04-01 12:31:53 | 79252222222 | 79252222222 | 79252222222 | | | recordcheck | sub-record-check | Local/89641111111@from-internal-00000004;2 | MixMonitor | 2016/04/01/out-89641111111-79252222222-20160401-123153-1459503113.15.wav,ai(LOCA | 3 | | 1459503113.15 | 1459503090.11 | | | |
| 2364 | HANGUP | 2016-04-01 12:32:10 | | 79252222222 | 79252222222 | | | h | from-internal | Local/89641111111@from-internal-00000004;2 | | | 3 | | 1459503113.15 | 1459503090.11 | | | {"dialstatus":"CANCEL","hangupcause":16,"hangupsource":"dialplan/builtin"} |
| 2365 | CHAN_END | 2016-04-01 12:32:10 | | 79252222222 | 79252222222 | | | h | from-internal | Local/89641111111@from-internal-00000004;2 | | | 3 | | 1459503113.15 | 1459503090.11 | | | |
+------+------------+---------------------+-------------+-------------+-------------+-----------+----------+-------------+------------------+--------------------------------------------+------------+----------------------------------------------------------------------------------+----------+-------------+---------------+---------------+------+-------------+----------------------------------------------------------------------------+
5 rows in set (0.00 sec)
В указанном выше запросе мы извлекли все содержимое таблицы ‘cel’, где поле uniqueid = 1459503113.15. Полученные данные можно обрабатывать и использовать для глубокой аналитики
В сегодняшней статье рассмотрим один из самых важных модулей Asterisk, который является необходимым инструментом в решении проблем со звонками (траблшутинга), статистики и отчётности. Речь пойдёт о модуле CDR Reports. Все примеры, традиционно, будем приводить на нашем FreePBX 13
/p>
CDR (Call Detailed Record) – это подробная запись об акте коммутации (звонке), которые были проведены на телефонной станции. Такие записи есть практически у любой существующей цифровой АТС. Каждый производитель цифровой АТС предлагает свои сервисы для просмотра CDR. В Asterisk это модуль CDR Reports.
Модуль CDR Reports позволяет формировать мгновенные отчёты о телефонных звонках, которые так или иначе проходили через Вашу IP-АТС. Это могут быть как внутренние звонки между сотрудниками компании, так и звонки из/во “внешний мир", Asterisk записывает всё. Можно посмотреть, как полную историю звонков, так и создать уникальный отчёт, отфильтровав записи по дате, временным интервалам, только исходящим звонкам, только по определенным номерам CID и так далее. Звонки, которые появятся в сформированном отчёте, можно прослушать прямо из модуля. Важно отметить, что модуль CDR Reports требует, чтобы CDR – записи хранились в базе данных.
О том, как Asterisk записывает детализирует телефонные события, вы можете прочитать в статье про cистему CEL (Channel Event Logging)
Для формирования вышеупомянутых отчётов, модуль CDR Reports имеет интерфейс. Нужно отметить, что неопытному пользователю может быть трудно работать с интерфейсом, поскольку он имеет множество опций, с которыми не все знакомы. Однако, напротив каждой опции предусмотрены подсказки, подробно описывающие для чего они нужны.
Рассмотрим интерфейс на примере FreePBX 13. Для того, чтобы в него попасть, с главной страницы переходим по следующему пути Reports - > CDR Reports, как показано на рисунке.
Перед нами открывается интерфейс модуля CDR Reports с множеством фильтров
Как видно, благодаря имеющимся фильтрам можно создавать самые разные отчёты. Коротко рассмотрим каждый фильтр:
Call Date – Дата звонка. Справа можно выбрать временной промежуток, который нас интересует
CallerID Number – Номер звонящего. Выводит все записи по определенному интересующему номеру телефона. Можно ввести множество номеров, разделяя их запятыми. Справа можно выбрать условия совпадения – “Начинается с", “Содержит", “Заканчивается на" и “Совпадает точно" данные условия можно применить и для остальных фильтров
CallerID Name – Имя звонящего
Outbound CallerID Number – Номер, с которого звонят, при исходящем звонке
DID – Искать по набранному номеру. Это удобно, когда в компании несколько входящих линий
Destination –Искать по номеру назначения. Например, когда звонок переведен на внутреннего сотрудника или звонок попал на Ring группу
Destination CallerID Name – Искать по имени, присвоенного номеру назначения
Userfield – Искать по полю Userfield, если оно включено на Extension’е
Account Code – Искать по Аккаунт коду
Duration – Продолжительность звонка. Справа можно выбрать интервал в секундах
Disposition – Искать по характеру обработки вызова. Например: ANSWERED, BUSY, NO ANSWER. Позволяет найти не отвеченные звонки, звонки которые были приняты, звонки, которые не были приняты по причине занятости абонента
Также записи можно сгруппировать по различным параметрам при помощи опции Group By
Как только все нужные фильтры заполнены интересующими входными данными, необходимо нажать клавишу Search, чтобы сформировался отчёт
Интерфейс статистики Merion Metrics
Как видите, стандартный модуль CDR Report содержит очень много различных фильтров и параметров, которые, зачастую, просто не нужны рядовому пользователю. Именно поэтому, мы создали свой собственный интерфейс построения отчётов для Asterisk, интуитивно понятный и упрощенный. Наша разработка обладает не только базовым функционалом модуля CDR Report, но также позволяет формировать визуализированные отчёты и диаграммы.
Посмотрите видео о том, как много радости приносит наш интерфейс статистики для IP - АТС Asterisk:
Интерфейс можно попробовать бесплатно, пройдя по ссылке -
Всем привет! Сегодня мы покажем процесс установки MySQL сервера версии 8.0 на Windows 10 с помощью автоматического установщика. До этого мы уже рассказывали как установить MySQL сервер на CentOS 7, теперь мы решили коснуться несколько более известной всем платформы.
Установка
Итак, начнем. Как я уже упомянул ранее, мы будем использовать автоматический установщик, который необходимо скачать по следующей ссылке: https://dev.mysql.com/get/Downloads/MySQLInstaller/mysql-installer-community-8.0.11.0.msi
Файл "весит" примерно 200 Мб, и в нем уже есть все необходимое для установки. Дважды кликаем на исполняемый файл, принимаем условия лицензионного соглашения (галочка) и кликаем Next.
Далее выбираем тип установки, коих есть несколько - установка готового "набора разработчика", установка только сервера, только клиента, полная установка (первая опция + дополнительные инструменты) и кастомная. В нашем случае мы выбираем установку сервера.
Далее кликаем Execute и ждем завершения установки.
Затем нажимаем Next.
Переходим на этап настройки - нажимаем Next.
Так как мы показываем самую простую установку, выбираем первую опцию, также как на скриншоте - отдельный MySQL сервер и кликаем Next.
Настраиваем сетевые параметры - для демонстрационных целей мы все оставили по умолчанию.
Затем настраиваем параметры аутентификации - выбираем первую опцию и нажимаем Next.
Устанавливаем рутовый пароль для сервера - чем сложнее, тем лучше. Мы рекомендуем использовать по меньшей мере пароль из 12 символов, содержащий буквы, цифры и специальные символы. Также на этом этапе можно добавить пользователей - мы, к примеру, добавили пользователя asterisk.
Далее настраиваем свойства службы MySQL - указываем имя службы, параметры автозапуска и из под какой учетной записи необходимо запускать данную службу.
Далее настраиваем плагины и расширения - мы на данном этапе оставили все по умолчанию, т.к демонстрируем базовую установку сервера.
Далее необходимо применить настройки - кликаем Execute и ждем.
Завершение установки и проверка работоспособности
Готово! Теперь осталось нажать Finish два раза - поздравляем! Вы установили MySQL сервер.
Теперь давайте проверим его работоспособность. Для этого необходимо открыть приложение, которое было установлено вместе с сервером - MySQL 8.0 Command Line Client. Необходимо будет ввести рутовый пароль, который был указан вами во время установки и, затем, выполнить команду show databases;
Очень важно не забывать точку с запятой в командах, как в примере выше.
Результатом вы должны увидеть несколько созданных по умолчанию баз данных - mysql, performance_schema, information_schema и sys.
Для выхода введите команду exit.