Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Отслеживание HOLD для Биллинга

0

Приветствую всех!

Перейду к делу. Как записать событие HOLD (когда абонент нажал на аппарате кнопку HOLD) в таблицу CEL (в БД asteriskcdrdb). Нужно записать время события и номер абонента кого повесили на HOLD.

Единственное где увидел что звонок на удержании это консоль Asterisk, командой [root@localhost ~]# asterisk -r, там:

-- Started music on hold, class 'default', on SIP/9002-000001c6

и

-- Stopped music on hold on SIP/9002-000001c6

Можно ли заставить эти события попадать в скрипт с парсером?

Единственным решение вижу запустить постоянно работающий скрипт, перехватывать события которые попадают в консоль, парсить и записывать в БД. Я новичек в этой области. Как их перехватывать не знаю. Подскажите как это сделать. Возможно это делается с помощью AMI, как я понял в AMI надо отправить запрос, но я могу пропустить это событие, если можно пример кода что послать и как часто. Перерыл форумы по Asterisk ничего похожего не нашел.

удалить закрыть спам изменить тег редактировать

спросил 2014-01-21 11:46:03 +0400

Рустик Gravatar Рустик
1 1

2 Ответа

0

Мне еще не включили возможность комментировать поэтому пишу в "ответы".

Для meral

пропатчить астерсик чтоб он выдавал CEL

Благодарю за ответ, Можно поподробнее. Патч это какой-то модуль для asterisk или программа для Linux. Где можно скачать или хотя бы название патча.

например можно использовать для этого перловый Asterisk::AMI

Подскажите я в правильном направлении двигаюсь? Знаю только PHP поэтому буду писать на нем. Я должен запускать файл xxx.php ежесекундно чтобы он отправлял Event-пакеты и получал события из AMI и парсить их. Нашел пример с классом AGI_AsteriskManager(). Можно этот класс использовать в моем случае?

ссылка удалить спам редактировать

ответил 2014-01-22 14:07:57 +0400

rustyle Gravatar rustyle
37 2 2 4

обновил 2014-01-22 14:46:58 +0400

Comments

патч это кусок кода с++ который ВЫ должны написать. реально проще использовать перл. но если вам хочется на php, вам надо 1) присоединится к сокету manager api(5038). 2) авторизоватся 3) сказать что вы хотите слушать евенты 4) ждать евентов, парсить токо то что надо. учитывая что вы не в курсе что такое патч, это для вас сложновато будет. значит ищите готовый example или наймите когото.

meral ( 2014-01-22 21:34:17 +0400 )редактировать

Надо подумать насчет Perl возможно Вы правы с ним проше. Я решил слушать ивенты AMI с помощью PHP. Нашел готовые примеры по прослушке, но все они работают через класс AGI_AsteriskManager(). Наверно этот класс и нужен для присоединения к сокету AMI.

Я только одного не пойму есть ли команда посылаемая в AMI которая заставляет выдавать только конкретное событие HOLD? Или надо указать EventMask: [группа событий] и парсить все в поисках HOLD

rustyle ( 2014-01-23 11:17:35 +0400 )редактировать

с перлом проще ибо уже написан вот тот парсер который сам все делает. вам надо только указать что вы хотите получать. вы должны указать какие евенты слушаете. евент hold передается когда включено евенты типа call . евенты приходят по мере выполнения. вы не можете их запросить.

meral ( 2014-01-23 16:51:01 +0400 )редактировать
0

у вас есть два варианта.

вариант 1) правильный - пропатчить астерсик чтоб он выдавал CEL

вариант 2) астериск УЖЕ выдает event в AMI. соответвенно совсем не сложно его читать и записывать. например можно использовать для этого перловый Asterisk::AMI.

ну или вариант "золотой" - наймите експерта вам сделают либо 1 либо два за пару часиков.

ссылка удалить спам редактировать

ответил 2014-01-22 02:31:25 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку
1 закладка

подписаться на rss ленту новостей

Статистика

Задан: 2014-01-21 11:46:03 +0400

Просмотрен: 676 раз

Обновлен: Jan 22 '14

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.