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

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

ответил 2012-10-17 16:16:24 +0400

meral Gravatar meral flag of Ukraine

http://pro-sip.net/

я делаю просто.

в cdr добавляю поле start.

контекст пишу вот так

exten => _X.,1,Set(CDR(start)=0)
exten => _X.,2,Wait(0.2);это надо от тупых звонков который дисконектяться сразу после конекта.
exten => _X.,n,Set(CDR(start)=1)
exten => _X.,n,Set(CDR(start)=1)
exten => _X.,n,ResetCDR(vw)
exten => _X.,n,Set(CDR(start)=0)

получается две записи. одна на старт одна на конец разговора. соответвенно собрать надо те где старт есть а стопа нет. или собрать все, и удалять скриптом старты по появлению стопа(если по первому варианту вы не можете sql составить).

также можно через AMI/core show channels, или слушать евенты. но это менее надежно.

я делаю просто.

в cdr добавляю поле start.

контекст пишу вот так

exten => _X.,1,Set(CDR(start)=0)
exten => _X.,2,Wait(0.2);это надо от тупых звонков который дисконектяться сразу после конекта.
exten => _X.,n,Set(CDR(start)=1)
exten => _X.,n,Set(CDR(start)=1)
exten => _X.,n,ResetCDR(vw)
exten => _X.,n,Set(CDR(start)=0)

получается две записи. одна на старт одна на конец разговора. соответвенно собрать надо те где старт есть а стопа нет. или собрать все, и удалять скриптом старты по появлению стопа(если по первому варианту вы не можете sql составить).

также можно через AMI/core show channels, или слушать евенты. но это менее надежно.

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