При настройке интеграции решений на базе 1С:Управление нашей фирмой (например, 1С:Автосервис) с виртуальной АТС (ВАТС) «Манго-Телефония» технические специалисты часто сталкиваются со следующей проблемой. Исходящие звонки из базы 1С проходят успешно (при нажатии на кнопку вызова звонок инициируется), однако при входящем звонке в программе ничего не происходит: карточка клиента не открывается, а ручной поиск входящих по клавише F8 показывает пустой список. При этом журнал регистрации 1С полностью молчит и не фиксирует никаких ошибок.
В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем архитектуру взаимодействия веб-сервера и АТС, а также по шагам настроим файлы публикации для корректной и безопасной работы телефонии.
Для того чтобы понять суть проблемы, рассмотрим, как именно физически происходят звонки в обе стороны:
Если в журнале регистрации 1С нет абсолютно никаких записей о входящих запросах, это означает, что запрос от телефонии блокируется на уровне веб-сервера (IIS), даже не доходя до самой конфигурации 1С. Веб-сервер IIS при обращении к HTTP-сервису АТС требует авторизовать пользователя, а так как робот Манго не может интерактивно ввести логин и пароль, веб-сервер возвращает ошибку 401 Unauthorized или 403 Forbidden.
Чтобы веб-сервер мог успешно перенаправить запрос от телефонии в базу 1С, в файле публикации необходимо жестко прописать учетные данные специального служебного пользователя 1С. При настройке телефонии система автоматически создает пользователя с ограниченными правами (обычно с именем TelephonyService или аналогичным).
Разберем процесс настройки по шагам:
C:\inetpub\wwwroot\ИмяВашейПубликации\.ib=.").Рассмотрим пример строки подключения для файлового варианта базы данных:
ib="File="C:\EnterpriseOne\AutoServiceBase";Usr="TelephonyService";Pwd="СложныйПарольТелефонии123";"
Если используется клиент-серверный вариант работы базы (на сервере 1С:Предприятие), строка подключения в файле default.vrd должна выглядеть следующим образом:
ib="Srvr="ИмяСервера1С";Ref="ИмяБазыДанных";Usr="TelephonyService";Pwd="СложныйПарольТелефонии123";"
После сохранения изменений обязательно перезапустим службу веб-сервера IIS (через диспетчер служб или выполнив команду iisreset в командной строке от имени администратора).
Внимание! Прописав логин и пароль администратора или даже сервисного пользователя непосредственно в основном файле default.vrd, мы создаем серьезную уязвимость безопасности. Теперь любой пользователь, который попытается зайти в базу через этот адрес публикации (например, через веб-клиент или тонкий клиент), будет автоматически авторизован под учетной записью TelephonyService без запроса личного логина и пароля.
Чтобы избежать этой проблемы и защитить конфиденциальные данные компании, применим профессиональный подход — двойную публикацию одной и той же базы данных на одном веб-сервере.
Рассмотрим, как настроить безопасную схему работы:
MyAutoService. В её файле default.vrd параметры Usr и Pwd не указываются. Пользователи подключаются по этой ссылке, и система стандартно запрашивает у них авторизацию.MyAutoService_telephony. Ссылку именно на эту публикацию мы укажем в личном кабинете Mango Office.
default.vrd этой публикации мы прописываем автоматический вход под учетной записью телефонии: Usr="TelephonyService";Pwd="...".<ws> и других разделов установим параметры доступности в значение false, разрешив работу только для нужного API.Посмотрим на пример безопасного файла default.vrd для служебной публикации телефонии, где отключены все лишние точки доступа:
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/MyAutoService_telephony"
ib="File="C:\EnterpriseOne\AutoServiceBase";Usr="TelephonyService";Pwd="SecretPass1";">
<standardOdata enable="false"/>
<ws enable="false"/>
<httpServices publishByDefault="false">
<service name="MangoApi" alias="mango-api" enable="true"/>
<service name="TelephonyApi" alias="telephony" enable="true"/>
</httpServices>
</point>
После настройки и перезапуска веб-сервера необходимо убедиться, что служба АТС Манго теперь может успешно достучаться до базы данных 1С без запроса авторизации.
Для этого откроем интернет-браузер на любом внешнем устройстве (например, смартфоне вне локальной сети) и перейдем по тестовому адресу вебхука:
http://[Ваш_Внешний_IP_или_Домен]/MyAutoService_telephony/hs/telephony/ping
(в зависимости от используемого релиза конфигурации и модуля интеграции адрес также может иметь вид .../hs/mango-api/ping).
Проанализируем результаты теста:
default.vrd не применились. Убедитесь, что вы отредактировали нужный файл и сохранили его в кодировке UTF-8, после чего перезапустили IIS.Также важно обратить внимание на версию используемой платформы 1С:Предприятие. В старых версиях (до 8.3.11) для работы телефонии требовалось держать открытой специальную панель телефонии или периодически нажимать клавишу F8 для принудительного обновления списка звонков.
В современных релизах 1С:УНФ реализован механизм автоматического оповещения. Убедитесь, что в базе выполнены следующие шаги:
После выполнения этих настроек входящие вызовы будут обрабатываться в режиме реального времени, моментально открывая карточку звонка на рабочем столе оператора автосервиса или менеджера по продажам.