LINUX.ORG.RU
ФорумAdmin

CDR Asterisk Answered, которые по факту должны быть noanswer

 , ,


0

2

Добрый день! Уважаемые форумчане, подскажите пожалуйста!

На данный момент есть проблема - нужно отделить пропущенные звонки от действительно принятых. Так как используется и музыка, и голосовое меню, то естественно все звонки идут как отвеченные.

Сейчас extensions.conf кратко/упрощенно выглядит так

[Incoming]
exten => s,1,wait(4)
exten => s,n,Answer()
exten => 1234567,1,GoTo(Incoming1,s,1)
exten => 1234568,1,GoTo(Incoming2,s,1)

[Incoming1]
exten => s,1,Answer()
exten => s,n,Set(MPATH=/path/to/1234567)
exten => s,n,GotoIfTime(22:00-08:00,*,*,*?Incoming-night,s,1)
exten => s,n(restart),BackGround(${SPATH}/welcomeIVR1) #iron-woman talk
exten => s,n,WaitExten(3)

exten => _#,1,NoOp(Прослушать сообщения снова)
exten => _#,n,Goto(Incoming1,s,restart)

###################(пропустил всякие _1 _2 _3 блаблабла группы и прочее)#########################

exten => t,1,NoOp(Входящий звонок на номер 1234567)
exten => t,n,Set(RECORDING=1)
exten => t,n,Set(EXTEN=1234567)
exten => t,n,Macro(recording,${CALLERID(num)},${EXTEN})
exten => t,n,Dial(SIP/101&SIP/102&SIP/104&SIP/105&SIP/201,12,tTgm)
exten => t,n,GotoIf($[«${DIALSTATUS}» = «ANSWER»]?answer)
exten => t,n,Background(${SPATH}/hold) #просим подождать
exten => t,n,Dial(SIP/201&SIP/203&SIP/204&SIP/205,12,tTgm)
exten => t,n,GotoIf($[«${DIALSTATUS}» = «ANSWER»]?answer)
exten => t,n,Background(${SPATH}/hold) #просим подождать
exten => t,n,Dial(SIP/101&SIP/102&SIP/104&SIP/105&SIP/201&SIP/203&SIP/204&SIP/205,55,tTgm)
exten => t,n,PlayBack(${SPATH}/hangup) #извиняемся
exten => t,n(answer),NoOp(Звонок завершен)
exten => t,n,Hangup() #кладем трубку

При таком все звонки имеют статус ANSWERED Что конечно же не отражает реалий. На данный момент из этого обсуждения: https://www.linux.org.ru/forum/admin/9005822 поставил в cdr.conf unanswered = yes

Вопрос_1 - корректно ли это ? Или лучше использовать exten => s,n,ResetCDR(w) , если да, то подскажите куда ставить пожалуйста. Вопрос_2 - стоит ли длинный dial заменить на queue ?

И Вопрос на будущее обсуждение: как вы ловите переведенные звонки и перехваченные, по дефолту в логах входящий звонок: 7654321 -> 1 или на '2' or '3' or 's' or 't' это один звонок, а перевод его со 101 на 102, это просто вызов 101 -> 102 совершенно не привязанный к входящему. Возможно ли отслеживать это ? Спасибо форуму, понял что CDR уходит в прошлое.

У меня queue_log пишется в БД. Оттуда потом можно статусы брать, неотвеченные будут ABANDON. Если не использовать Queue, тогда только серез CEL наверное.

А почему CDR уходит в прошлое? Что приходит ему на замену?

paganmind ()

Астриск создает переменную BRIDGEPEER, если он соединил звонок, проверяй ее вместо DIALSTATUS

Yur4eg ★★ ()
Ответ на: комментарий от Yur4eg

Прошу прощения, но я наверное не совсем верное выразился. Речь не идет о том чтобы определить текущий статус звонка, и направить его в «ответ», а в том чтобы записать в логи реальный статус звонка. То есть если даже если железная тетя проговорила и музыка проиграла, но никто не принял звонок, то получить запись в логе о том что соединения с оператором не было. Сейчас все звонки получают пометку 'answered' потому что музыка и железная тётенька считаются за ответ.

Volosko ()
Ответ на: комментарий от petav

Да кто же спорит о правильности ? Как отследить звонок если никто из операторов его не принял ?

Volosko ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.