Используется следующая схема:
Cisco - используется для перенаправления звонков с E1 на Asterisk
Asterisk - рулит звонками.На астериске некоторое количество SIP-клиетов представляют собой коллцентр.
Задача стоит следующая - получать информацию вида Количество разговоров / Количество ожидающих соединения абонентов. Получать программно, например опрашивать циску (Telnet или SNMP) или астериск (AMI) за очень короткие интервалы (1-2 сек).
Циска (show voice call status, show call active voice, show isdn active, ...) и астериск (sip show channels) могут показывать только общее количество звонков на данный момент.
При этом, например, при дебаге ISDN на циске - можно получить информацию о состоянии звонка (о передаваемых алертах и прочее). А в CDR астериск пишет не только время разговора, но и т.н. billsec - время разговора. Это значит что оба они "знают" состояние звонка, но не признаются)
Вопрос в следующем - возможно ли вообще это, и если да - то как сделать? (интересует не реализация, а "что и как спрашивать").Есть, конечно, вариант парсить CDR астериска (у ожидающего звонка будет 0 секунд billsec), но, в таком случае, получается не совсем realtime информация, так как CDR запись откладывается по завершении звонка.
>Используется следующая схема:
>Cisco - используется для перенаправления звонков с E1 на Asterisk
>Asterisk - рулит звонками.
>Очевидно, что всей информацией в данном случае обладает только Астериск.
Значит с него эту инфу и надо брать, наверняка куча скриптов по сбору разного рода СДР информации существует.
И вроде Астериск запись об активном звонке сразу пишет в СДР (ну или это точно настраивается). А оттуда вытащить данные не проблема
>Очевидно, что всей информацией в данном случае обладает только Астериск.
>Значит с него эту инфу и надо брать, наверняка куча скриптов по
>сбору разного рода СДР информации существует.
>И вроде Астериск запись об активном звонке сразу пишет в СДР (ну
>или это точно настраивается). А оттуда вытащить данные не проблемаНе совсем очевидно, если честно. Циска получает алерты из линии: отбой, пошел КПВ, пошел разговор и т.п. А больше мне и не надо. Надо только грамотно спросить, но я не знаю как)
По поводу CDR - если бы оно откладывалось сразу же, то оне содержало бы такой информации, как результат - типа отвечен/не отвечен и т.п., длительность. Или на каждое событие откладывалось по несколько таких запсей, что скорее не call details record, а лог событий.
Или я что-то не понимаю?
>[оверквотинг удален]
>Не совсем очевидно, если честно. Циска получает алерты из линии: отбой, пошел
>КПВ, пошел разговор и т.п. А больше мне и не надо.
>Надо только грамотно спросить, но я не знаю как)
>
>По поводу CDR - если бы оно откладывалось сразу же, то оне
>содержало бы такой информации, как результат - типа отвечен/не отвечен и
>т.п., длительность. Или на каждое событие откладывалось по несколько таких запсей,
>что скорее не call details record, а лог событий.
>
>Или я что-то не понимаю?Я не знаю каким образом можно вытащить с циски данные по состоянию звонка\ков, кроме как из дебага. По-моему, никак.
К тому же, если звонок роутится на голосовую систему, то для циски нету разницы в состояниях "разговор" и "звонок на удержании" - ведь коннект в обоих случаях уже был.
А вот в маршрутизации Астериска можно сказать сначала начать откладывать данные по звонку (хоть даже в отдельный файл, не в СДР), а потом маршрутизировать куда надо (IVR, абонент, повесить трубку и т.д.)
настройте на циске radius и собирайте radact пакеты, там будет вся интересующая Вас инфа
100 лет назад у самого в таком режиме работала 3640 с nm-hdv
>настройте на циске radius и собирайте radact пакеты, там будет вся интересующая
>Вас инфа
>100 лет назад у самого в таком режиме работала 3640 с nm-hdv
>По-подробнее про инфу в Старт-Стоп посылках можно?
В Старте только время сетапа, а в Стопе сразу и время коннекта и дисконнекта. Как же из них можно понять в каком состоянии звонки?
>>настройте на циске radius и собирайте radact пакеты, там будет вся интересующая
>>Вас инфа
>>100 лет назад у самого в таком режиме работала 3640 с nm-hdv
>>
>
>По-подробнее про инфу в Старт-Стоп посылках можно?
>В Старте только время сетапа, а в Стопе сразу и время коннекта
>и дисконнекта. Как же из них можно понять в каком состоянии
>звонки?Честно говоря, давно оч. было, уже не помню формат этих .log файлов.
Но если у Вас есть start сессии и нет ее stop, разве этого не достаточно чтобы вычислять активные сессии.
>[оверквотинг удален]
>время разговора. Это значит что оба они "знают" состояние звонка, но
>не признаются)
>
>Вопрос в следующем - возможно ли вообще это, и если да -
>то как сделать? (интересует не реализация, а "что и как спрашивать").
>
>
>Есть, конечно, вариант парсить CDR астериска (у ожидающего звонка будет 0 секунд
>billsec), но, в таком случае, получается не совсем realtime информация, так
>как CDR запись откладывается по завершении звонка.
>На астериске некоторое количество SIP-клиетов представляют собой коллцентр.
>Задача стоит следующая - получать информацию вида Количество разговоров / Количество ожидающих
>соединения абонентов. Получать программно, например опрашивать циску (Telnet или SNMP) или
>астериск (AMI) за очень короткие интервалы (1-2 сек).На астериске для этого есть queue.log. Есть дополнительный софт, который этот лог умеет в реалтайме обрабатывать - QueueMetrics называется. В итоге все очень неплохо выглядит.
А еще можно действительно астериск опрашивать по АМИ на предмет очереди - там нужная инфа будет.