Интеграция с Asterisk
Last updated
Last updated
Интеграция системы vsDesk с платформой IP-телефонии Astersik позволяет отображать информацию о звонящем заказчике во всплывающем окне, быстро создать нового пользователя системы и его компанию (если номера заказчика нет в локальной БД), а затем создать заявку от имени заказчика. Для заказчика занесенного в БД во всплывающем окне отобразится информация о имени, номере телефона и компании заказчика, а также позволит создать новую заявку от имени определенного заказчика или перейти в карточку звонка. Система сравнивает номер звонящего с двумя полями Телефон и Внутренний телефон в справочнике Пользователи, поэтому необходимо привести все номера в БД к формату +7XXXXXXXXXX, если это мобильный или городской номер (без скобок и тире). Система передает данные о звонке в интерфейс исполнителя, на внутренний номер которого поступил звонок
Для включения интеграции, со стороны Asterisk (в файле manager.conf) необходимо создать отдельную учетную запись или использовать имеющуюся для доступа к Asterisk AMI с набором прав, указанным ниже (рекомендованный набор прав может быть изменен в целях повышения безопасности):
где в поле secret, укажите секретную фразу, а в поле permit, укажите IP-адрес сервера vsDesk для получения доступа к AMI.
Для получения записи звонков из Asterisk необходимо включить HTTP сервер в настройках, во FreePBX например включен по умолчанию.
Создайте ссылку для папки с записями в веб директории консоли сервера Asterisk:
cd /var/www/html
ln -s /var/spool/asterisk/monitor records
Теперь ваши записи должны быть доступны через веб по адресу сервера http(s)://asterisk_ip/records/
Для усиления безопасности рекомендуем в папке /var/spool/asterisk/monitor создать файл .htaccess со следующим содержимым:
Options -Indexes
Отредактируйте файл в папке дистрибутива /lib/ami.php где укажите следующие значения:
AC_DB_CS - строка подключения к БД CDR Asterisk, где необходимо указать хост, порт и имя БД;
AC_DB_UNAME - имя пользователя имеющего доступ к БД;
AC_DB_PASS - пароль пользователя имеющего доступ к БД;
AC_RECORD_PATH - путь к веб каталогу с записями, который мы создали на предыдущих шагах;
Скопируйте из папки дистрибутива файл /lib/ami.php в веб директорию сервера Asterisk, в примере /var/www/html/
После внесения изменений в manager.conf необходимо в консоли Asterisk выполнить команду:
# asterisk -rx "module reload manager"
Для интеграции со стороны vsDesk необходимо настроить несколько параметров:
В меню Настройки - Основные настройки, должен быть включен параметр "Использовать всплывающие уведомления" или же при использовании Push-уведомлений Google этот параметр можно не включать;
В меню Настройки - Управление ролями для роли Администратор должны быть включены доступы к настройкам интеграции с Asterisk в категории Настройки;
В меню Настройки - Управление ролями для роли Администратор должны быть включены доступы на чтение/просмотр/ удаление в категории Звонки;
В меню Настройки - Управление ролями для роли Исполнитель должны быть включены доступы на чтение/просмотр/ в категории Звонки (исполнитель будет видеть только звонки направленные на его внутренний номер);
В меню Настройки - Управление ролями для роли Исполнитель должны быть включены доступы на создание в категории Пользователи (для добавления нового пользователя из формы звонка);
Хост подключения Asterisk management API- укажите IP-адрес или DNS-имя сервера Asterisk; Asterisk management API port- порт для подключения к AMI, по умолчанию 5038; Схема подключения к Asterisk management API (tcp:// рекомендуемая)- схема подключения может принимать значение tcp:// или udp:// (tcp:// рекомендуемая); Пользователь Asterisk management API- имя пользователя, которое мы указывали в файле manager.conf Asterisk (в нашем примере amimanager); Секрет Asterisk management API- секретная фраза, которую мы указывали в фале manager.conf Asterisk; Таймаут подключения Asterisk management API- таймаут (в миллисекундах) для подключения к сокету AMI, по умолчанию 10000; Таймаут чтения Asterisk management API- таймаут (в миллисекундах) для чтения данных из сокета AMI, по умолчанию 10000;
Asterisk context - контекст выполнения исходящего звонка в Asterisk прописанный в Dial plan экстеншена.
Asterisk channel - канал через который осуществляется исходящий вызов в Asterisk.
Путь к записям звонков - путь к файлу ami.php, который мы с вами скопировали на одном из предыдущих шагов, например http(s)://asterisk_ip/ami.php
Для пользователей системы vsDesk, получивших обновление необходимо прописать в планировщике задач, задание позволяющее перезапускать через указанный интервал демон подключения к Asterisk AMI. Для Windows пользователей в меню Open-server в меню Настройки - вкладка Планировщик заданий, необходимо добавить задачу со следующими настройками и интервалом раз в 5 минут:
%sprogdir%/modules/php/%phpdriver%/php.exe %sprogdir%/domains/localhost/protected/cron.php pamirun
Для Linux пользователей в меню веб-интерфейса Настройки - Настройка задач планировщика, необходимо добавить задачу со следующими настройками
Интервал перезапуска влияет на бесперебойную работу демона, при стабильном соединении и небольшом количестве отказов получения информации о входящем звонке, можно увеличить интервал перезапуска до 30 минут или уменьшить до 1 минуты. Во время перезапуска могут быть недоступны данные о входящих звонках в течение 10-15 секунд.