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

Проблема с CDR - много лишнего

<1 2 3>
Сообщений: 1573

Re: Проблема с CDR - много лишнего

Сделайте лучше, как показано выше(вариант 2, c Macro), и добавьте туда все статусы которые нужно отдельно обрабатывать. Просто если система планируется масштабная, лучше сделать вариант с Macro, можно будет использовать из разных контекстов, и вносить поправки нужно будет в одном месте.
Либо, как показано ниже:

exten => _X.,1,NoCDR
exten => _X.,n,Dial(SIP/SipNet/${EXTEN},,g)
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "ANSWER"]?label)
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "CANCEL"]?label)
exten => _X.,n,Hangup

exten => _X.,n(label),ResetCDR()
exten => _X.,n,Hangup
2008-08-04 17:10

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

Re: Проблема с CDR - много лишнего

А если зацепить ResetCDR / NoCDR на h exten?
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2008-08-05 08:56

Откуда: Саратов
Сообщений: 414

Re: Проблема с CDR - много лишнего

А чуть поподробнее можно, а то никогда не слышал про h exten
+7(925)140-7438
2008-08-05 11:00

Сообщений: 1573

Re: Проблема с CDR - много лишнего

exten => h,1,ResetCDR

а что, не пробовали делать, как выше говорилось?
2008-08-05 11:03

Откуда: Саратов
Сообщений: 414

Re: Проблема с CDR - много лишнего

cron333:

а что, не пробовали делать, как выше говорилось?
Пробовал, но уперлось в логику. Дело всё в том, что статус ANSWER в случае, если я первым положил трубку (для записи CDR) и CANCEL (для незаписи CDR) можно вытащить только из h ext (спасибо всем просветившим меня про существование такового).
Щас сижу ломаю голову над логической конструкцией. Пока успехов нет, система всегда пишет что-то лишнее.
+7(925)140-7438
2008-08-05 20:30

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

Re: Проблема с CDR - много лишнего

Копай в сторону h exten.
http://www.voip-info.org/wiki/view/Asterisk+standard+extensions
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2008-08-05 20:40

Сообщений: 1573

Re: Проблема с CDR - много лишнего

Evgen:

Пробовал, но уперлось в логику. Дело всё в том, что статус ANSWER в случае, если я первым положил трубку (для записи CDR) и CANCEL (для незаписи CDR) можно вытащить только из h ext (спасибо всем просветившим меня про существование такового).
Щас сижу ломаю голову над логической конструкцией. Пока успехов нет, система всегда пишет что-то лишнее.
Ну так и сделайте:

exten => _X.,1,Macro(dial-out,${EXTEN},60)

[macro-dial-out]
exten => s,1,NoCDR
exten => s,n,Dial(SIP/SipNet/${ARG1},${ARG2})
exten => s,n,GoTo(s-${DIALSTATUS},1)

exten => h,1,GoTo(s-${DIALSTATUS},1)

exten => s-ANSWER,1,ResetCDR()
exten => s-ANSWER,n,Hangup
exten => s-CANCEL,1,ResetCDR()
exten => s-CANCEL,n,Hangup
exten => _s-.,1,Hangup

...
2008-08-05 20:47

Откуда: Саратов
Сообщений: 414

Re: Проблема с CDR - много лишнего

Cron333, спасибо большое за внимание к моей проблеме, но там ещё вверху ForkCDR торчит, вот он то всё и портит:

exten => s,1,Answer()
exten => s,n,NoCDR()
exten => s,n,ForkCDR()
exten => s,n,WaitExten()
exten => _X.,1,Dial(SIP/Sipnet/${EXTEN})
exten => _X.,n,Hangup

Если потом в любом месте ставить NoCDR, то оно ForkCDR не отменяет. И ForkCDR свою часть информации обязательно пишет. ResetCDR тоже самое. В общем, это проблема, простого решения не имеющая :(
+7(925)140-7438
2008-08-06 00:19

Сообщений: 1573

Re: Проблема с CDR - много лишнего

exten => s,1,Answer()
exten => s,n,NoCDR()
exten => s,n,ForkCDR()
exten => s,n,WaitExten()
exten => _X.,1,Dial(SIP/Sipnet/${EXTEN})
exten => _X.,n,Hangup

так в этой конструкции вы вначале отменяете CDR и тут же включаете(форкаете), т.е одно другое аннулирует ..., для чего?

Я возможно до конца не понимаю что вы хотите сделать, но если я правильно понял, то мой предыдущий пост должен решить ваши проблемы - не будут писаться не отвеченные вызовы и будут записаны отвеченные и сброшенные ...
2008-08-06 01:06

Откуда: Саратов
Сообщений: 414

Re: Проблема с CDR - много лишнего

cron333:

так в этой конструкции вы вначале отменяете CDR и тут же включаете(форкаете), т.е одно другое аннулирует ..., для чего?
Отменяю я сначала CDR для входящей ноги звонка (Answer), а форкаю для включения CDR для исходящей ноги (на SIP-провайдера).
В общем, проблему я вроде победил, выкинув нах этот форк и вовремя заресетив основной CDR:

exten => s,1,GotoIf(${BLACKLIST()}?allow)
exten => s,n,Hangup()

exten => s,n(allow),Answer()
exten => s,n,ResetCDR()
exten => s,n,WaitExten(7)

exten => _X.,1,Set(CDR(userfield)=${EXTEN})
exten => _X.,n,Dial(SIP/Sipnet/${EXTEN})
exten => _X.,n,Hangup()

exten => h,1,GotoIf($["${DIALSTATUS}"="ANSWER"]?label)
exten => h,n,NoCDR()
exten => h,n(label),NoOp

Эта конструкция всё делает правильно, кроме одного: в Master.csv отображается следующее:

"","341111","h","default","341111","SIP/192.168.0.61-b7901f58","SIP/Sipnet-08190f28","Dial","SIP/Sipnet/74959119514","2008-08-08 13:08:52","2008-08-08 13:09:03","2008-08-08 13:09:04",12,1,"ANSWERED","DOCUMENTATION","74959119514"

Где 341111 - это CallerID, переданный с ТФОПа в Asterisk через FXO порт. Почему он в CDR оказывается на месте ${CDR(src)} пока не понимаю, наверное, это отголоски входящего звонка на FXO. Посему пришлось для отображения набранного номера запихивать его в CDR(userfield).
+7(925)140-7438
2008-08-08 13:43

<1 2 3>
Добавить страницу в закладки:  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