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

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

<1 2
Avatara of IgorG
Откуда: Омск
Сообщений: 478

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

${ANSWEREDTIME}? Может ${CDR(answer)}? Вообще тут нет разницы каким языком пользоваться. Я использую всегда phpAGI для этих целей.
OpenSUSE 11.2 / Asterisk 1.6.x / Vicidial / UniMRCP
2008-06-10 08:13

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

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

Frostik:

Хорошо, покажите, пожалуйста, пример на питоне, как получить переменную ${ANSWEREDTIME}.
agi.get_var('ANSWEREDTIME') :-)
http://www.google.com/search?q=asterisk+python
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2008-06-10 11:30

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

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

IgorG:

${ANSWEREDTIME}? Может ${CDR(answer)}? Вообще тут нет разницы каким языком пользоваться. Я использую всегда phpAGI для этих целей.
Игорь, уверен что переменной ANSWEREDTIME нет?
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2008-06-10 11:30

Avatara of IgorG
Откуда: Омск
Сообщений: 478

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

Есть, ANSWEREDTIME и DIALEDTIME, но я считал что человеку надо взять запись из CDR. Кстати проблема решилась:
1) AGI нужно запускать из h экстенжена
2) Перед вызовом AGI нужно вызвать ResetCDR(), чтобы запись появилась в таблице
OpenSUSE 11.2 / Asterisk 1.6.x / Vicidial / UniMRCP
2008-06-11 06:54

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

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

Интересно, а на сколько возможна и вероятна ситуация, когда ResetCDR отправит CDR в базу, а база не успеет его записать и закомитить транзакцию по ряду причин - например, блокировка записи. Астериск же тем временем сделает h exten и запустит скрипт пересчета. А данные еще не пришли! Поэтому не надо работать так, как делает автор топика - не стоит полагаться на asterisk cdr, и обрабатывать то, что туда попадает. А писать свою обработку.

P.S. Кстати, в случае как делает автор, возможно, надо не h exten с вызовов AGI по обработке использовать, а триггер вешать на AFTER INSERT на таблицу CDR...
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2008-06-11 12:06

Сообщений: 23

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

Я уже думал о триггере, но тут возникает небольшая проблема: как узнать по какому направлению позвонил пользователь? У меня есть база с кодами стран и городов. Ситуация следующая: пользователь набрал номер +73442646250 (для примера). есть код города 34, а есть 3442. Как выяснить в триггере, что нам надо искать цену за направление 73442, а не за 734? На языке высокого уровня я представляю как это сделать, средствами SQL-нет. Если есть выход - подскажите, я тоже считаю, что триггер тут лучше.

Правда, мне кажется, что описанная вами ситуация едва ли возможна. Кто знает или у кого было подобное - отпишитесь, пожалуйста!
2008-06-13 11:20

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

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



SELECT price FROM rate, account WHERE account.rate_id = rate.id AND account.id = _account_id
AND rate.destination = LEFT(_called, LENGTH(rate.destination)) ORDER BY LENGTH(rate.destination) DESC LIMIT 1
destination - 734,
_called - 73442646250,
_account_id - accountcode юзера.
Надо будет учесть, что при звонке на отсутствующий код набо будет вставить NULL, и предусмотреть отдельный интерфейс просмотра непосчитанных звонков и их пересчета.

P.S. Эх, ностальгия.. :-)
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2008-06-13 16:43

<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