Как стать автором
Обновить

Комментарии 25

>В момент разговора с оператором у клиента есть возможность оценить его нажатием 0 или 1
А после, нет?
Можно и после
Если я своим коллцентрам предложу это, профсоюз меня просто пристрелит ;)
Так держать, отличный пример как можно быстро добавить функционал.
Для того чтобы после завершения звонка отправить вызов в ИВР с оценкой оператора надо использовать опцию g в команде DIAL, но совместить это с FREEPBX мне не хватило терпения.
А DTMF будет слышен оператору?
relaxdtmf=yes — и ничего не услышит
image
Наши телефоны постоянно DDoS-ят звонками.

Можно ли как-то решить задачу «блокировать звонящего если его callerid позвонил чаще 4 раз за минуту» без использования базы?
такие решения есть, я видел чуть-ли не в вики по астериску.
Метод записи номера звонящего во временную таблицу мускула и сравнения на каждый входящий звонок.
Проблема в том что чаще всего для телефонного ддос используются IP-операторы, которые не парятся за передачу номера звонящего или вообще с виртуальных номеров со странными рандомными кодами. А против этого лома приёмов ещё не придумано, вроде.

Можно попробовать договориться со своим провайдером, чтобы они блокировали звонки с определённых операторов, если они их могут как-то идентифицировать.
Если можно пожертвовать звонящими со скайпа, то можно просто составить таблицу реально-существующих кодов, оставить «нужные», а остальных просто дропать.
А что со скайпа звонки приходят с несуществующих кодов?
Если не куплена услуга предоставления входящего номера, то звонки приходят либо с многих восьмёрок, либо «номер неизвестен».
Мне интересна данная задача, свяжитесь через личку для уточнения требований, я готов это реализовать и выложить на Хабр.
А как сделаешь без использование ДБ?
AstDB? Проверка/изменение счётчика на номере при поступлении нового вызова в зависимости от текущего времени и времени поступления предыдущих вызовов, которое (время) проще добавлять в ту же AstDB.
Я бы как-то так сделал, в общем.
Ну это конечно некорректно назвать «без ДБ», но с использованием только встроенных инструментов.
Ну… Не совсем без БД.
Просто вместо внешней MySQL будет внутренняя встроенная в Asterisk DB на базе SQLite, в которую будут писаться звонки CDR.
Правило «блокировать звонящего если его callerid позвонил чаще 4 раз за минуту» достаточно просто реализуется, достаточно в диалплане анализировать собственную статистику.
Кстати, какие еще правила могут быть?
— если набранный номер за день повторяется больше, чем за месяц (типа звонки на Кубу Чпошли)
— Что еще ???
есть еще вариант использовать fail2ban, но я застрял в момент когда fail2ban переделывает мой CALLERID 4952323999 в 0.0.207.5 :)
Добавил UPDATE: с настройками для оценки после того как оператор повесил трубку.
К 1.4 версии нам реализовать голосование во время разговора не удалось
в 1.4 не реализовано в features.conf возможность создавать свой приложения, попробуйте после разговора это сделать, опция g должна быть в 1.4
чей то оно не `реализвано`? applicationmap и макросы в них в 1.4 вполне себе работали и работают.
Напишите в личку и покажите лог.
Я бы не рекомендовал использовать функцию MYSQL() в принципе. Используйте модуль func_odbc.
А в данном случае можно использовать поле Userfield в CDR:
Set(CDR(userfield)=${SCORE})
Спасибо. Мне лично статья интересна тем, что в ней немного описано, как в сгенерированный еластиксом конфиг прикрутить кастомный сценарий.
Обычно при настройках каких-то сценариев дальше extensions_custom.conf дело не идёт :), хотя, как я понимаю, система позволяет достаточно гибко манипулировать любыми событиями
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации