Снова здравствуйте!

Сегодня я хочу рассказать о такой полезной функции, как автоматический набор ответственного менеджера. Эта фишка значительно экономит время и, главное — нервы Вашего клиента. Ну и еще немного денег, если Вы любите очереди с длинными приветствиями.

Представьте — как это приятно клиенту. Он звонит на тот же номер, на который звонил в первый раз, но сразу попадает на своего менеджера — конечно, если он свободен. Без приветствий, секретарей, ожиданий в очереди и прочего. Секретарю, кстати, тоже будет проще.

Обычно для этого нужна связь с Вашей системой учета (CRM) — если, конечно, она у Вас есть. Это непросто и недешево (опять же — обычно, я делаю для своих клиентов это недорого :). Но что делать, если системы учета, где хранятся связи между номерами клиентов и их ответственными — нет, либо существуют трудности с интеграцией телефонии и системы учета?

Возможно, Вам подойдет простое решение. Это выбор из CDR (отчеты о звонках) последнего звонка клиента на короткий внутренний номер и маршрутизация на него. Если такого звонка в базе нет — то клиент попадет в общую очередь. Если секретарь перевел(а) клиента на менеджера — менеджер стал ответственным. Минус системы — ответственным становится последний, который принял звонок или на которого перевели звонок.

Короче, система маршрутизирует клиента на последнего, с кем говорил клиент. Без пап, мам и кредитов :)

Если такой путь — Ваш, то велком. По традиции, все только в вебморде.


Все происходит на FreePBX 2.11 / Asterisk 11.x. Но уверен, что для других версий и/или систем на базе Asterisk сделать так же — не проблема.

Нам понадобится модуль Smart Routes. Модуль с исправленным мною html можно взять тут: yadi.sk/d/UE1dr4kctkNCH
Модуль выглядит устрашающе, но для нашей задачи он подойдет с минимальными изменениями от дефолта. Находим модуль в новом пункте меню Other и создаем новый маршрут.

image

Самое интересное тут — это SQL-запрос к таблице `cdr` базы `asteriskcdrdb`, которая скорее всего у Вас доступна через ODBC. Глянуть название элемента ODBC можно в файле res_odbc_additional.conf

Сам запрос:
SELECT `dst` FROM `cdr` WHERE `src` = '${CALLERID(num)}' AND `disposition` = 'ANSWERED' AND `dst` LIKE '1__' AND `lastapp` = 'DIAL' AND `billsec` > 5 ORDER BY `calldate` DESC LIMIT 1


Он отберет одну запись, где источником является номер звонящего, номер назначения начинается на «1» и в длину 3 символа, статус звонка: отвеченный и длительность этого ответа будет более 5 секунд. Сортировка отберет именно последнюю по дате запись.

В модуль этот запрос вернет конкретный внутренний номер, например, 101. Но его еще надо правильно маршрутизировать.
Для этого придется в секции Destinations перечислить все возможные варианты и настроить их:

image

Указываем маршруты по совпадению и в случае неответа. Обычно это общая очередь или группа, или другая точка входа.
Её же указываем как Default Destination.

Ниже, в секции Database Settings, настраиваем доступ к MYSQL и базе. Обычно это ODBC, требуется указать наименование dsn для доступа к таблице. Если Ваш CDR работает, то в системе он уже есть:

image

Либо настройте доступ по «устаревшим» хосту, логину, паролю и наименованию базы.

Останется указать модуль Smart Routes и наш маршрут в Inbound Routes, и все начинает работать. Эта настройка с проверкой заняла у меня в десять раз меньше времени, чем написание этой статьи.

Всем спасибо за Ваше время! Ну, а я пошел готовиться на море, не зря же я к нему переехал три месяца назад :)
Поделиться с друзьями
-->

Комментарии (9)


  1. xmaster83
    30.07.2016 22:16

    Вот почему мне то мне кажется что FreePBX это очень сладкая система для взлома и угона телефонного трафика.


    1. ilyaplot
      01.08.2016 11:06

      Мы установили FreePBX на машину, которая смотрела наружу и через час обнаружили, что наш свеженький сервер участвует в ботнете, который DDOSит сайты на joomla. Где-то есть дыра, позволяющая залить шелл. Версия была не самая последняя, возможно, исправлено.


      1. whoim
        01.08.2016 14:56

        Вы говорите о «готовом дистрибутиве» в виде iso — AsteriskNow. Я же делаю свою работу иначе.


        1. 640509-040147
          01.08.2016 16:36

          Нет, они говорят именно о FreePBX. Присоединяюсь к вышеозначенным ораторам.


          1. whoim
            04.08.2016 02:12

            FreePBX — набор скриптов, в основном на php. Если Вы не можете закрыть апач паролем через htpasswd и .htaccess, закрыв любую возможность использования недочетов в скриптах — вы не можете выступать, как специалист в области безопасности.

            К слову, более 50 серверов создано и обслуживаются мною на FreePBX.


            1. 640509-040147
              04.08.2016 11:49

              Закрывайте на здоровье, мне ваш порт 80 не нужен, я 5060 буду атаковать. FreePBX по умолчанию идет с уязвимостями в настройках asterisk, и если вам для настройки нужна веб-морда, то «вы не можете выступать как специалист» в области ip-телефонии.


    1. whoim
      01.08.2016 14:56

      Один простейший прием позволяет закрыть все и сразу — apache basic auth.


  1. brestows
    30.07.2016 22:16
    +1

    Как по мне не хватает еще ограничения по времени, когда последний раз звонил клиент. У меня реализовано на голом Asterisk подобная схема, но у меня ограничениее в 24 часа, т.е. если клиент звонил последний раз более чем сутки назад, то он сразу идет в общую очередь, если нет, то на последнего ответевшего оператора. Сделано это с тем замыслом что если клиент давно уже звонил то и проблема вероятнее всего у него уже другая. В вашем же случае получается что внезависимости от проблемы, клиент попадает на одного и того же оператора, что не совсем верно, опять же по моему мнению.


    1. whoim
      01.08.2016 14:57

      Изменить запрос под Ваше требование несложно, в принципе :)
      Вполне кстати здравое требование!