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

Апдейт записи cdr

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

Апдейт записи cdr

Приветствую!
В диалплане настроено:
.....
exten => 100,n,Dial(SIP/prov_test/1234567890,60,tTg)
exten => 100,n, NoOP(============= ${HANGUPCAUSE}==========)
exten => 100,n,Set(ODBC_CR_FIX_TEST(${E})=${ORIG_NUM} ${HANGUPCAUSE} DST)
exten => 100,n,Hangup()

Настройка func_odbc:
[CR_FIX_TEST]
dsn=asterisk
writesql=UPDATE cdr SET userfield = '${VALUE}' WHERE uniqueid = '${ARG1}'

В консоли вижу:
Executing [100@office:5] Dial("SIP/100-001d4f54", "SIP/prov_test/1234567890,60,tTg") in new stack
== Using SIP RTP CoS mark 5
-- Called prov_test/1234567890
-- SIP/prov_test-001d4f55 is circuit-busy
== Everyone is busy/congested at this time (1:0/1/0)
-- Executing [100@office:6] NoOp("SIP/100-001d4f54", "============= 1==========") in new stack
-- Executing [100@office:7] Set("SIP/100-001d4f54", "ODBC_CR_FIX_TEST(1291364127.2077258)=100 1 DST") in new stack
-- Executing [100@office:8] Hangup("SIP/100-001d4f54", "") in new stack



Но в поле юзерфилд какое было значение до звонка - то и осталось. Есть идеи, почему ?
Заранее благодарен за ответы!
2010-12-03 11:40

Avatara of Aven
Сообщений: 261

Re: Апдейт записи cdr

А почему бы не сделать так?
exten => 100,n,Set(CDR(userfield)=${ORIG_NUM} ${HANGUPCAUSE} DST)
Intel Core 2 Duo E6400 @ 2.40GHz / 6GB / 160GB | Gentoo Linux 2.6.32 || Asterisk 1.6.2.9 | SFA + FFA | Linksys SPA922 + D-Link DPH-300S + D-Link DVG-7111S + 3xHuawei E1550
2010-12-03 13:20

Сообщений: 147

Re: Апдейт записи cdr

В 1.6.2.10 этот финт не работал - приходилось апдейтить .. а в 1.6.2.13 видимо поправили - заработало. Спасибо ).
2010-12-03 14:32

Сообщений: 147

Re: Апдейт записи cdr

Потестировал еще ... дурацкая ситуация получается и не стандартное поведение:
Если сбой, то конструкция Set(CDR(userfield)= работает. Если разговор состоялся, то не важно стоит опция "g" или нет - не работает функция.
Апдейт же работает боле мене верно. Если дозвон был и указана опция "g" то, как и следует ожидать апдейтится запись в любом случае, не важно кто положил трубку. Если был сбой - то апдейтить нечего, т.к. запись создается в таблице после отбоя первого плеча.
Вобщем думается мне что придется писать макрос, где тупо перечислять все коды, и в зависимости от кода делать либо апдейт, либо сет юзерфилд, что немного печалит из-за обема ). У кого нибудь есть более рациональное решение, без гигантского макроса ?
2010-12-03 15:10

Avatara of Aven
Сообщений: 261

Re: Апдейт записи cdr

iye у меня на 13 работает при состоявшемся разговоре
Intel Core 2 Duo E6400 @ 2.40GHz / 6GB / 160GB | Gentoo Linux 2.6.32 || Asterisk 1.6.2.9 | SFA + FFA | Linksys SPA922 + D-Link DPH-300S + D-Link DVG-7111S + 3xHuawei E1550
2010-12-03 20:40

Сообщений: 147

Re: Апдейт записи cdr

Какие типы каналов использовались для теста ?
2010-12-03 22:46

Avatara of Aven
Сообщений: 261

Re: Апдейт записи cdr

Только SIP
Intel Core 2 Duo E6400 @ 2.40GHz / 6GB / 160GB | Gentoo Linux 2.6.32 || Asterisk 1.6.2.9 | SFA + FFA | Linksys SPA922 + D-Link DPH-300S + D-Link DVG-7111S + 3xHuawei E1550
2010-12-04 12:24

Сообщений: 147

Re: Апдейт записи cdr

А в базу через какой модуль пишется ? Я использую odbc.
2010-12-04 17:14

Avatara of line24
Откуда: Санкт-Петербург
Сообщений: 568

Re: Апдейт записи cdr

iye:

[CR_FIX_TEST]
dsn=asterisk
writesql=UPDATE cdr SET userfield = '${VALUE}' WHERE uniqueid = '${ARG1}'
Но в поле юзерфилд какое было значение до звонка - то и осталось. Есть идеи, почему ?
Потому что CDR запись в таблице создается после Hangup. В тот момент, когда вы пытаетесь WHERE uniqueid = '${ARG1} , записи с таким uniqueid еще нет.
http://www.line24.ru - системы массового телефонного обслуживания.
2010-12-04 18:43

Avatara of line24
Откуда: Санкт-Петербург
Сообщений: 568

Re: Апдейт записи cdr

iye:

У кого нибудь есть более рациональное решение, без гигантского макроса ?
Попробуйте делать Dial с опцией 'e', а ODBC апдейт CDR-a перенести в экстен 'h'.

п.с. ^^^ завтра прочту, сам не пойму что написал :)

http://www.line24.ru - системы массового телефонного обслуживания.
2010-12-04 18:51

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