Всем доброго времени суток! После обновления с версии Asterisk 1.8.32 на Asterisk 13.6 пропала очень важная для нас функция в билинге. Раньше рассчитывали время ответа оператора путем вычитания duration-billsec И получали время ответа оператора. А в версии Asterisk 13.6 данные колонки одинаковы. Прилагаю контекст обработки звонков:
[voicemenu-Operator]
exten = s,1,Answer(1)
exten = s,n,Playback(greeting)
exten = s,n,Set(CHANNEL(musicclass)=hold)
exten = s,n,Dial(SIP/${number},12,m(hold))
Если убрать параметр Answer и голосовое приветствие то параметр billsec показывает правильное значение с момента ответа оператором, но при этом не играет музыка при дозвоне и нет приветствия что тоже необходимо. Не могли бы Вы подсказать как можно решить данную проблему в Asterisk версии 13. Всем заранее огромное спасибо за участие.
[voicemenu-Operator]
exten = s,1,Answer(1)
exten = s,n,Playback(greeting)
exten = s,n,Set(CHANNEL(musicclass)=hold)
exten = s,n,Dial(Local/${number}@voicemenu-Operator-local/n,12,m(hold))
[voicemenu-Operator-local]
exten = _X.,1,Set(CDR(accountcode)=voicemenu-Operator)
exten = _X.,n,Dial(SIP/${EXTEN},12,)
У вас будет две записи, одна "правильная".
и использовать для биллинга записи с accountcode=voicemenu-Operator
Мне кажется что самым лаконичным все же будет решение о котором упоминал StuxForce. Сам использую такой подход на нескольких серверах.
[voicemenu-Operator]
exten = s,1,Answer(1)
exten = s,n,Playback(greeting)
exten = s,n,Set(CHANNEL(musicclass)=hold)
exten = s,n,ResetCDR(v)
exten = s,n,Dial(SIP/${number},12,m(hold))
Я бы добавил еще после строки exten = s,n,Set(CHANNEL(musicclass)=hold)
строку
exten = s,n,MusicOnHold(hold,)
чтоб уж наверняка.
zzuz ( 2016-03-19 00:30:15 +0400 )редактироватьС resetcdr надо очень осторожно. У него, почемуто, меняется поведение в зависимости от версии астериска и настроек cdr.conf(включая настройки, которых там явно нет, зато ктото в очередной версии поменял default
meral ( 2016-03-19 04:02:16 +0400 )редактироватьЧитайте в сторону Early media. Вместо answer ставьте ringing и progress
Early media решит проблему в очень небольшом количестве случаев. Фактически в ничтожном
meral ( 2016-03-15 03:40:30 +0400 )редактироватьДобрый день! Замените
exten = s,1,Answer(1)
на
exten = s,1,Answer(1000,nocdr)
https://wiki.asterisk.org/wiki/display/AST/Application_Answer
спасибо за совет! Но данный параметр уже пробовал, но он удален в 13-ой версии вот что пишет: The nocdr option for the Answer application has been removed and is no longer supported. https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Answer
inta ( 2016-03-09 10:09:59 +0400 )редактироватьДа, действительно, прошу прощения. Для 11 еще был актуален. Удобный параметр, сам пользуюсь.
StuxForce ( 2016-03-09 13:53:49 +0400 )редактироватьЗадан: 2016-03-08 17:28:06 +0400
Просмотрен: 1,444 раз
Обновлен: Mar 18 '16
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Во-первых , какая практическая польза от обновления ? Во-вторых , что мешает убрать Answer ?
zzuz ( 2016-03-08 20:02:19 +0400 )редактироватьстарый сервер приказал долго жить, в компании уже есть сервера с 13-ой версией, поэтому решили перейти сразу на 13-ю. К 1.8 всегда можно вернутся, но зачем если есть возможность перейти на новую версию решив данную проблему с билингом. Я к сожалению в данный момент не могу найти как ее решить, поэтому и решил обратится за помощью к специалистам. Если убрать параметр Answer то параметры duration и billsec все равно будут одинаковы. Они отличаются только при условии: 1. Нет Answer 2. Нет голосового приветсвия В связи с этим нет музыки (во время дозвона) это для нас неприемлемо.
inta ( 2016-03-09 09:19:18 +0400 )редактироватьА если попробовать просто использовать ResetCDR() после Answer(1)?
StuxForce ( 2016-03-10 17:02:20 +0400 )редактировать