Для подключения IP-телефонии к 1С обычно используются внешние компоненты, такие как, например:
- SIP телефон(софтфон) для 1С:Предприятия 8
- Связь Asterisk и 1С, внешняя компонента
- Звоним из «1С». Универсальный софтфон
- Интеграция 1С 8.2 и Asterisk
Плюсами таких решений является универсальность и простота запуска (при настроенной АТС). Сложности возникают, когда требуется какой-то более-менее сложный алгоритм обработки звонка, который зависит от данных CRM-системы. Так же сложности возникают из-за того, что обраотка звонка в подобных решения идет не централизованно, а на конкретных рабочих местах пользователей, где установлена специализированная компонента. В этой публикации описано, как можно обработку звонков "повесить" на сервер 1С, который уже будет определять, на кому из менеджеров перевести звонок.
Типовые конфигурации и отраслевые решения 1С, к сожалению, пока значительно отстают по функционалу (в том числе по интеграции) от специализированных CRM-систем. В данной публикации рассмотрено, как можно организовать двустороннюю интеграцию с телефонией, используя механизм http-сервисов 1С. Например, облачная телефонная станция Sipuni позволяет интегрироваться с CRM-системами с помощью встроенных API. В качестве такой CRM-системы будет выступать наша 1С Управление Торговлей 11.
Исходящие звонки
Тут нет ничего сложного. Облачная АТС Sipuni предоставляет API, на который 1С-ка может отправить GET-запрос, который инициирует звонок клиенту. Для примера данный механизм реализован в виде внешней обработки заполнения, которую можно вызвать из карточки партнера.
Для подключения обработки достаточно добавить ее во внешние обработки. Далее в карточке клиента нажимаем "Заполнение" - "SipuniТелефония - Настройки".
В настройках необходимо прописать код клиента и ключ интеграции
Которые мы можем посмотреть в личном кабинете облачной АТС Sipuni
При записи настроек автоматически создастся свойство "Внутренний номер" у справочника пользователей - это внутренние телефонные номера, которые присваиваются в личном кабинете АТС. Необходимо будет у пользователей, которые будут совершать звонки, заполнить внутренние телефонные номера.
Все, можно звонить. Нажимаем "Заполнение - Позвонить через Sipuni", появляется список доступных телефонных номеров клиента, выбираем номер. При этом автоматически АТС вызывает наш софтфон (я использую Zoiper, он бесплатный и удобный), нажимаем снять трубку, после чего начинается дозвон клиенту. Выглядит это примерно так:
Входящие звонки
Сразу хочу предупредить, что данное решение не является полностью готовым модулем, а представляет собой концепт, который хоть и является работоспособным, но требует настройки специалистом уже под конкретное предприятие. Модуль представляет собой расширение конфигурации.
Работа с http-сервисами 1С очень хорошо описана тут:
- HTTP-сервисы для тех, кто ничего не понимает в WEB
- HOWTO: создание и отладка HTTP-сервиса
- HTTP-сервисы в 1С Предприятие 8.3
Для безопасного использования http-сервисов в "рабочем" режиме следует публиковать базу на https (с сертификатом). Для тестирования это не обязательно. После установки расширения при публикации необходимо установить галочку "Публиковать HTTP сервисы расширений по умолчанию"
Далее через Конфигуратор создаем пользователя, например, "Sipuni", задаем пароль. В настройке прав отмечаем галочкой "Базовые" - этого хватит, чтобы работал http-сервис, но под этим пользователем невозможно будет зайти в базу.
Теперь в настройках личного кабинета Sipuni заходим в контруктор, и редактируем схему обработки входящих звонков. При поступлении звонка необходимо добавить команду http-запроса во внешнюю систему
Далее необходимо указать URL, куда будет "стучаться" облачная АТС. В качестве адреса необходимо ввести следующую строку:
http://sipuni:123@38.160.174.294/ut11/hs/sipuni/get
где:
- sipuni - логин "служебного" пользователя в 1С
- 123 - пароль
- @ - служебный символ-разделитель, позволяет выполнять авторизацию к http-сервису 1С прямо в рамках GET-запроса. Кстати, многие программисты задаются вопросом, как выполнять авторизацию при использовании http-сервисов 1С. В некоторых публикациях рекомендуют либо редактировать файл vrd с информацией о публикации базы, указывая там логин и пароль, под которым работает веб-подключение, либо делать windows-авторизацию в 1С для пользователя, под которым работает веб-сервер. К сожалению, этот способ приводит к тому, что любое подключение к опубликованной базе автоматически происходит под этим пользователем, если только явно не указаны логин-пароль в параметрах базы на клиенте. При облачном размещении базы, например в сервисе SCloud, требуется указывать логин и пароль для доступа к публикации базы по тонкому клиенту. В этом случае пара логин-пароль используется одновременно для доступа к публикации, и для самой 1С-ки.
- 38.160.174.294/ut11 - адрес публикации базы 1С
- hs - признак подключения к http-сервису (по умолчанию)
- sipuni - название скрипта обработки обращения к http-сервису (редактируется в расширении)
- get - название метода, также редактируется в расширении
При формировании запроса к http-сервису 1С облачная АТС Sipuni добавляет к указанному URL параметры, содержащие такие данные, как:
- fromnum - с какого номера пришёл вызов
- tonum - на какой номер пришёл вызов
- time - время прихода вызова в АТС
Обработчик скрипта ищет телефонный номер по всем телефонным номерам, содержащимся в базе в:
- Партнерах
- Контактных лицах партнеров
После того, как будет найден партнер, определяется основной менеджер по данному партнеру, и его внутренний телефонный номер. В ответе АТС отправляется найденный внутренний номер, после чего АТС предпринимает попытку перевести звонок на этот внутренний номер.
В это время в 1С создается документ "Телефонный звонок", и записывается "Напоминание пользователю" для указанного основного менеджера. У менеджера должна быть запущена встроенная обработка "Помощник продаж" (автоматическое открытие этой обработки можно настроить в Администировании) - именно в ней производится мониторинг входящих звонков. Создатели 1С обещают вскоре выпуск платформы, в которой будет механизм оповещения клиентских машин со стороны сервера 1С. Это будет существенный прорыв вперед, а пока что приходится действовать по-старинке. В обработке запускается обработчик ожидания, который каждые 5 секунд мониторит, не появилось ли у текущего пользователя напоминаний о "Телефонных звонках", и при обнаружения выводит на экран документ "Телефонный звонок", содержащий информацию о звонящем в данный момент клиенте.
Для менеджера этот процесс выглядит примерно так:
Протестировано на релизе 1С УТ 11.4.2.144