Добрый день форумчанам. Обращение нубское, но почему-то не могу догнать, в всё тут) Может, найдутся неравнодушные.
Предыстория.
Раньше был Trixbox, но жил своей жизнью и делал что ему взблагорассудится. Собрал с нуля астериск 10 на Debian 6.0.5. Настроил cdr => mysql, как это описано здесь http://www.ylsoftware.com/news/645. Статистика стала записываться в созданную таблицу, однако не во всех случаях. Поясню.
Вот, например, дайалплан:
[office]
exten => _XXX,1,Dial(SIP/${EXTEN})
exten => _XXX,n,Hangup()
Т.о. если звонить с номера 101 на 102, то в таблице мускуля все отображается верно, все поля на месте при всех ситуациях (позвонил - ответили, позвонил-сбросили и т.д.)
Но у меня есть еще простейшие голосовое меню с очередью, даже работает. Вот кусочек дп:
[officeIVR]
exten => "номер",1,Answer()
exten => "номер",n,Set(TIMEOUT(digit)=2.5)
exten => "номер",n,Background(здравствуйтеинажмитечто-то)
exten => "номер",n,WaitExten(3)
exten => 1,1,Queue(SalesGroup,300)
exten => 1,n,Hangup()
Так вот, суть вопроса: если входящий звонок завернуть на IVR, то получаем случаи:
1) Звонящий по нажатию цифры 1 попадает в IVR, дожидается в соответствии со стратегией, ответа оператора, разговаривает, и кладёт трубку. В этом случае тоже всё записывается как надо, а благодаря полю мускуля dstchannel можно поглядеть, какой именно оператор из очереди поднял трубку.
2) Допустим, звонящий попадает в очередь и НЕ дожидается ответа, то есть послушал музыку 20 минут и положил трубку. И при этом почему-то запись не создается вообще. По логике (как я думаю) должна создаваться запись со статусом NO ANSWER, но этого не происходит.
3) Бывает такой случай, когда звонок принимет оператор, говорит, мол, погодите, у меня еще 2 линии висит, и вешает на звонящего на холд чтоб тому не скушно было. При этом у звонящего не все в порядке терпением и он тоже кладёт трубку и звонит нашим конкурентам. В этом случае запись создается, но со статусом ANSWER.
Вопрос по п.2: почему может не создаваться запись?
Вопрос по п.3: как можно отследить в таблице случаи, когда повешеные на hold звонящие клали трубку и звонили конкурентам?
p.s. Если приведённый мной мануал по настройке cdr в mysql нехороший, то большая просьба поделиться хорошими статьями, известными вам.
Спасибо за внимание !