1 | изначальная версия редактировать | |
я делаю просто.
в 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, или слушать евенты. но это менее надежно.
2 | No.2 Revision редактировать |
я делаю просто.
в 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.