ну вот у вас есть контекст [dialout] вы в начале ставите ансвер, и звоните в него через dial(local/${EXTEN}@dialout/n). у вас верхняя cdr(от local будет отвеченная в люом случае и billsec=duration.
meral ( 2013-01-19 22:04:29 +0400 )редактироватьИмеется довольно простой IVR
exten => s,1,Answer
exten => s,2,Background(music1)
exten => s,3,Waitexten(3)
exten => s,4,Dial(SIP/abon1,10,tT)
exten => s,5,Dial(SIP/abon2,10,tT)
exten => s,6,Dial(SIP/abon3,15,tT)
exten => 11,1,Dial(SIP/abon1,30,tT)
exten => 12,1,Dial(SIP/abon2,30,tT)
exten => 13,1,Dial(SIP/abon3,30,tT)
После разговора имеем запись CDR , в которой поля billsec и duration различаются на время между Answer и подъемом трубки одного из abon.
вопрос такой: Можно ли без изменения диалплана (т.е. вставок, модифицирующих userfield или вынос во внешний файл) сделать так, чтоб в логи ложилась полная длина соединения, т.е. по факту billsec должен в этом случае быть равен duration?
можна. сделать dial(local/ и брать от него cdr.
ну вот у вас есть контекст [dialout] вы в начале ставите ансвер, и звоните в него через dial(local/${EXTEN}@dialout/n). у вас верхняя cdr(от local будет отвеченная в люом случае и billsec=duration.
meral ( 2013-01-19 22:04:29 +0400 )редактироватьduration содержит общую продолжительность вызова. billsec - продолжительность разговорной фазы. Зачем вам их специально приравнивать, если можно брать только первое?
это частный случай, когда ивр на стороне астериска, есть другие случаи, когда нужна только billsec
um2010 ( 2013-01-19 21:45:19 +0400 )редактироватьЗадан: 2013-01-17 20:13:00 +0400
Просмотрен: 2,622 раз
Обновлен: Jan 17 '13
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.