это даст много ненужной инфы, лучше использовать просто core show channels concise
switch ( 2012-10-17 16:13:01 +0400 )редактироватьНЛО прилетело и оставило после себя этот текст
sip show inuse
или sip show channels
и парсить
это даст много ненужной инфы, лучше использовать просто core show channels concise
switch ( 2012-10-17 16:13:01 +0400 )редактироватья делаю просто.
в 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,ResetCDR(vw)
exten => _X.,n,Set(CDR(start)=0)
получается две записи. одна на старт одна на конец разговора. соответвенно собрать надо те где старт есть а стопа нет. или собрать все, и удалять скриптом старты по появлению стопа(если по первому варианту вы не можете sql составить).
также можно через AMI/core show channels, или слушать евенты. но это менее надежно.
Как вариант для очередей: queue_log пишется "в режиме реального", средствами астериска.. (в качестве фронтенда - node.js? и можно мониторить по сети..)
вообще в новых версиях астериска есть такая штука
https://wiki.asterisk.org/wiki/display/AST/Channel+Event+Logging+(CEL)
в место нее можете использовать AMI и внешнюю программу - более сложный, но более гибкий способ. Либо в диалплане в нужных местах вставить сохранение в базу нужной информации.
Задан: 2012-10-17 15:40:06 +0400
Просмотрен: 485 раз
Обновлен: Nov 14 '12
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Любой следующий вопрос будет сразу же закрываться после таких выходок.
zzuz ( 2012-11-14 10:15:37 +0400 )редактировать