Почему 1С:УНФ не видит входящие звонки от Манго-Телефонии и как это исправить

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет IT и автоматизация бизнеса
← На главную

При настройке интеграции решений на базе 1С:Управление нашей фирмой (например, 1С:Автосервис) с виртуальной АТС (ВАТС) «Манго-Телефония» технические специалисты часто сталкиваются со следующей проблемой. Исходящие звонки из базы 1С проходят успешно (при нажатии на кнопку вызова звонок инициируется), однако при входящем звонке в программе ничего не происходит: карточка клиента не открывается, а ручной поиск входящих по клавише F8 показывает пустой список. При этом журнал регистрации 1С полностью молчит и не фиксирует никаких ошибок.

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

Выясняем причину: разница между исходящими и входящими звонками

Для того чтобы понять суть проблемы, рассмотрим, как именно физически происходят звонки в обе стороны:

  1. Исходящий звонок: Инициируется изнутри 1С. Платформа отправляет стандартный API-запрос на внешние сервера Mango Office. Для этого 1С не требуется принимать внешние соединения, достаточно обычного исходящего интернет-трафика, поэтому исходящая связь работает без проблем.
  2. Входящий звонок: Работает по технологии Webhooks (вебхуки). Когда клиенту поступает звонок, сервер Манго обращается к вашему веб-серверу (IIS или Apache), на котором опубликована база 1С, и пытается передать данные о звонке.

Если в журнале регистрации 1С нет абсолютно никаких записей о входящих запросах, это означает, что запрос от телефонии блокируется на уровне веб-сервера (IIS), даже не доходя до самой конфигурации 1С. Веб-сервер IIS при обращении к HTTP-сервису АТС требует авторизовать пользователя, а так как робот Манго не может интерактивно ввести логин и пароль, веб-сервер возвращает ошибку 401 Unauthorized или 403 Forbidden.

Решение проблемы: настройка файла публикации default.vrd

Чтобы веб-сервер мог успешно перенаправить запрос от телефонии в базу 1С, в файле публикации необходимо жестко прописать учетные данные специального служебного пользователя 1С. При настройке телефонии система автоматически создает пользователя с ограниченными правами (обычно с именем TelephonyService или аналогичным).

Разберем процесс настройки по шагам:

  1. Перейдем в каталог на сервере, куда опубликована база 1С. Для веб-сервера IIS путь по умолчанию выглядит так: C:\inetpub\wwwroot\ИмяВашейПубликации\.
  2. Найдем в этой папке файл конфигурации публикации default.vrd и откроем его с помощью любого текстового редактора (например, Блокнота) от имени Администратора.
  3. Найдем строку подключения к базе данных, которая начинается с параметра ib=.
  4. Пропишем в параметре подключения логин и пароль служебного пользователя телефонии, используя XML-экранирование кавычек (").

Рассмотрим пример строки подключения для файлового варианта базы данных:


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 без запроса личного логина и пароля.

Чтобы избежать этой проблемы и защитить конфиденциальные данные компании, применим профессиональный подход — двойную публикацию одной и той же базы данных на одном веб-сервере.

Рассмотрим, как настроить безопасную схему работы:

  1. Создадим на веб-сервере IIS две независимые публикации для одной и той же информационной базы.
  2. Первая публикация (пользовательская): Назовем её, например, MyAutoService. В её файле default.vrd параметры Usr и Pwd не указываются. Пользователи подключаются по этой ссылке, и система стандартно запрашивает у них авторизацию.
  3. Вторая публикация (для телефонии): Назовем её MyAutoService_telephony. Ссылку именно на эту публикацию мы укажем в личном кабинете Mango Office.
    • В файле default.vrd этой публикации мы прописываем автоматический вход под учетной записью телефонии: Usr="TelephonyService";Pwd="...".
    • Для максимальной безопасности отключим в этой публикации все сторонние веб-сервисы и интерфейсы, оставив доступ только к HTTP-сервису интеграции телефонии. Для этого внутри тега <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).

Проанализируем результаты теста:

Настройка автоматического открытия карточки звонка в 1С

Также важно обратить внимание на версию используемой платформы 1С:Предприятие. В старых версиях (до 8.3.11) для работы телефонии требовалось держать открытой специальную панель телефонии или периодически нажимать клавишу F8 для принудительного обновления списка звонков.

В современных релизах 1С:УНФ реализован механизм автоматического оповещения. Убедитесь, что в базе выполнены следующие шаги:

  1. Перейдем в раздел Администрирование — Интеграция с другими программами — Телефония.
  2. Проверим наличие галочки «Автоматически открывать карточку клиента при входящем звонке».
  3. Убедимся, что у пользователей, работающих со звонками, в персональных настройках CRM сопоставлены их внутренние номера телефонов, зарегистрированные в личном кабинете Mango Office.

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

← На главную