Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / вызов AGI скрипта после добавления записи в таблицу CDR

вызов AGI скрипта после добавления записи в таблицу CDR

1 2>
Сообщений: 23

вызов AGI скрипта после добавления записи в таблицу CDR

Добрый день! Хочу узнать, есть ли в asterisk возможность вызвать AGI-скрипт после того как cdr добавит запись о совершенном звонке в таблицу? Нужно для того, чтобы пересчитать остаток на счете. Пытался вызывать AGI(script) после Dial, но до скрипт не вызывался. Потом сделал вызов Dial внутри AGI-скрипта, но запись добавляется, видимо, несколько позже. Как отловить этот момент?
Спасибо!
2008-06-07 12:26

Сообщений: 23

Re: вызов AGI скрипта после добавления записи в таблицу CDR

Так, ну решение я нашел, но подозреваю, что это костыль. Делаю так:

EXEC ResetCDR w
EXEC NoCDR
EXEC HangUp

после чего запись появляется в БД.
может быть есть более красивое решение?
2008-06-07 13:02

Сообщений: 23

Re: вызов AGI скрипта после добавления записи в таблицу CDR

Наврал, это я в запросе накривил. Запись так и не появляется :( Как заставить CDR запихать запись в базу из AGI-скрипта?
2008-06-07 13:36

Сообщений: 23

Re: вызов AGI скрипта после добавления записи в таблицу CDR

Ничего не понимаю...
Нашел в cdr.conf параметр enablebeforhextension = no, поменял на yes, перезапустил астериск но ничего не поменялось(((
2008-06-07 15:28

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: вызов AGI скрипта после добавления записи в таблицу CDR

Попробуйте использовать exten h для вызова AGI скрипта пересчета.
Но по своему опыту написания так назывемых "решений" для prepaid cards & pc2phone рекомендую сделать noload => cdr_manager.so и все что с ним связано, и раскидывать по таблицам самостоятельно анализируя переменные типа DIALSTATUS, ANSWEREDTIME, EXTEN, CALLERID(num), DIALEDTIME, STRFTIME и т.д. - http://www.voip-info.org/wiki-Asterisk+variables
При большой нагрузке это еще и экономия. Вместо AGI использовать FastAGI. И будет Вам счастие...
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2008-06-07 22:08

Сообщений: 23

Re: вызов AGI скрипта после добавления записи в таблицу CDR

Спасибо! Только несколько моментов непонятно: пытаюсь в своем AGI-скрипте выполнить следующее:

write("GET VARIABLE DIALEDTIME");

в консоли появляется сообщение "510 Invalid or unknown command". Как правильно считать эту переменную?

И еще: зачем FastAGI, если все скрипты локально лежат?
2008-06-08 00:02

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: вызов AGI скрипта после добавления записи в таблицу CDR

Не знаю, я с AGI в сыром виде на работаю, через высокоуровневые обёртки.
FastAGI потому что это правильно. А скрипты запускать на PBX - не очень.
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2008-06-08 14:45

Сообщений: 23

Re: вызов AGI скрипта после добавления записи в таблицу CDR

А какую обертку для AGI под php Вы посоветуете? И как через нее получить переменную, которая зовется billingtime в cdr?
2008-06-08 16:20

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: вызов AGI скрипта после добавления записи в таблицу CDR

Я PHP не советую. Изучайте Python. Берите пример с Google.
http://code.google.com/appengine/
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2008-06-09 11:30

Сообщений: 23

Re: вызов AGI скрипта после добавления записи в таблицу CDR

Хорошо, покажите, пожалуйста, пример на питоне, как получить переменную ${ANSWEREDTIME}.
2008-06-09 22:54

1 2>
Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru