(861) 244 20 15

Переадресация входящих на внутренний номер через FreePBX

Настроить переадресацию FreePBX достаточно просто. Тем не менее, многие компании в IP-АТС используют многоуровневое интерактивное голосовое меню, а иногда все входящие звонки принимает секретарь и вручную их обрабатывает. Было бы проще и выгоднее для компании автоматизировать этот процесс: клиентов, которые уже звонили и общались с каким-то менеджером, сразу соединять с тем, с кем они общались. Перевод звонка в FreePBX можно сделать с установленным модулем «Dynamic Routes».

В первую очередь необходимо установить сам модуль. Найдите подходящую версию и скачайте модуль.

Затем установите модуль через Администратор>Управление модулями. После установки необходимо создать пользователя для подключения модуля к базе данных. Заходим на IP-АТС по SSH и под учетной записью root подключаемся к mysql командой
mysql -u root -h localhost.
Просмотреть базы можно командой SHOW DATABASES. Появится таблица наподобие приведенной ниже.
+-------------------------+
| Database |
+-------------------------+
| information_schema |
| asterisk |
| asteriskcdrdb
| mysql |
| performance_schema |
±--------------------------+

Нас интересует база asteriskcdrdb. Подключаемся к ней командой: 
USE asteriskcdrdb. Далее создадим нового пользователя (В нашем случае UserName с паролем UserPassword).
CREATE USER 'UserName'@'localhost' IDENTIFIED BY 'UserPassword';

Зададим ему права доступа:
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO 'UserName'@'localhost';
quit;

Пробуем подключиться в mysql под созданным пользователем командой: 
mysql -u UserName -p -h localhost

Теперь можно переходить к настройкам маршрута. Заходим через web-интерфейс FreePBX, открываем Приложения>Dynamic Route и добавляем новый динамический маршрут.
Чтобы переадресация FreePBX работала корректно, в поле Dynamic Route Name задаете произвольное имя для своего маршрута.
В Source Type выберите MySQL и введите: 
MySQL hostname — 127.0.0.1,
MySQL database - MySQL database,
MySQL username — имя пользователя в mqsql,
MySQL password — пароль пользователя.

Важный момент при настройке перевода звонка в FreePBX - MySQL query, запрос в базу, на основании которого модуль будет решать куда направить звонок. В нашем случае запрос выглядит так:
SELECT SUBSTRING(dstchannel,5,3) AS Initial FROM `cdr` WHERE `src`='${CALLERID(num)}' AND `disposition`='ANSWERED' AND `lastapp`='DIAL' AND `billsec` > 20 AND TIMESTAMPDIFF(MINUTE,calldate,NOW()) < 60 ORDER BY `calldate` DESC LIMIT 1

Из-за того, что входящие звонки поступают в группу в поле `dst` попадает номер группы, а не внутреннего абонента. При повторном звонке клиент всё равно позвонил бы на очередь. Поэтому внутренний номер приходится вырезать из имени канала командой SUBSTRING из столбца dstchannel (берем 3 символа, начиная с 5-ого). Командой TIMESTAMPDIFF(MINUTE,calldate,NOW()) < 60 проверяем прошло ли 60 минут с момента последнего звонка.

переадресация в FreePBX.png

Настройка переадресации в FreePBX

В секции Dynamic Route Entries нужно заполнить назначение для каждого возможного результата sql запроса, то есть для каждого внутреннего номера. Для переадресации FreePBX добавляем Default Destination, направление если запрос ничего не вернет. Теперь осталось настроить входящий маршрут на модуль Dynamic Routes.

Готово! Перевод звонка через FreePBX настроен. Теперь при повторных звонках клиента, будет автоматическая переадресация FreePBX на менеджера, с которым он общался ранее.
Контакты 350058, г. Краснодар, ул.Старокубанская, д. 114, лит. Б, оф. 4 8 (861) 244-20-15