07 Май

Статистика по переходам в меню IVR

Понадобилось маркетологам у меня на работе внезапно посмотреть, куда переходят люди в IVR-меню. Ну получить какую-нибудь статистику и так далее. Наверное, чтобы понимать, что востребовано, а что нет.
Правильней всего, конечно же, было бы перевести всю логику телефонии на Infinity и уже через него делать все эти статистики и выгрузки. Но так правильней и дороже, а нам нужно дешевле и можно не очень правильно.

Итого, на руках имеем Freeswitch с реализованными на нем разными IVR-менюшками и всё.
В итоге решил сделать так: подключаем mod_curl, и в каждом пункте меню делаем сначала вот такой запрос

<entry action="menu-exec-app" digits="1" param="curl http://my.backend/add?anumber=${caller_id_number}&bnumber=${destination_number}&key_pressed=1" />

Это, соответственно, для единицы. Для других пунктов в нужных местах меняем цифру на необходимую.

В итоге у нас перед выполнением какого-то действия, которое запланировано при нажатии на кнопку, выполняется сначала запрос на заранее созданный бэкенд, а там уже это всё добавляется в БД. Ну и дальше мы уже с этими данными можем делать что хотим.
Да, при большом количестве меню это становится довольно муторным делом, но в целом это все занимает не так уж и много времени и всё-таки основная работа уходит на обработку статистики, а не на ее сбор.
Из нюансов могу отметить, что тут не отмечаются абоненты, которые не нажали вообще ничего. Но нам же нужна статистика по нажатиям, а не по «ненажатиям» :)