Настройка виртуальной АТС МТС в УНФ (vpbx.mts.ru)

22.06.22

Интеграция - Телефония, SIP

"Доводка" УНФ для реализации телефонных звонков с кнопки в программе.

Давно чесались руки, но не было времени для реализации данного функционала.

Итак, начнем настройку.

1. Настройка в личном кабинете https://vpbx.mts.ru/

Главное меню - Методы API:

 

 

Активируем API, генерируем ключ, указываем URL для обратных вызовов (об этом подробнее ниже).

Переходим Главное меню - web hooks, активируем.

 

 

Заполняем настройки CRM УНФ - Облачная телефония:

 

 

Ставим галочку здесь:

 

 

Копируем ключ API и заполняем адрес АТС:

 

 

Заполняем пользователей телефонии. Важно: вместо внутренних телефонов указываем идентификаторы абонентов отсюда (главное меню-абоненты):

 

 

Число в адресной строке и есть идентификатор абонента.

 

 

Заполняем действия при исходящих звонках (входящие мы пока не будем отслеживать, т.к. надо поднять отдельный HTTP сервис для callback-запросов МТС и об этом будет отдельная тема):

 

 

Теперь конфигуратор.

В конфигураторе добавляем расширение. 

Заимствуем процедуру ДополнитьПараметрыОтправки общего модуля ОтправкаЗапросов для исправления запроса по требованиям API МТС:

Вставляем следующий код:

&После("ДополнитьПараметрыОтправки")
Процедура Расш1_ДополнитьПараметрыОтправки(ПараметрыОтправки)    
	
	ИДАбонента =ПараметрыОтправки.ПараметрыТела["user"];
	ИсходящийНомер = ПараметрыОтправки.ПараметрыТела["phone"];
	ПараметрыОтправки.URL = "https://vpbx.mts.ru/api/user/" + ИДАбонента + "/calls?address=tel:" + ИсходящийНомер;
	ПараметрыОтправки.Заголовки.Вставить("X-AUTH-TOKEN", ПараметрыОтправки.ПараметрыТела["token"]);
	ПараметрыОтправки.Заголовки.Вставить("cache-control", "no-cache");


КонецПроцедуры

Запускаем в режиме предприятия, находим контакт для звонка. Нажимаем трубочку, радуемся.

Немного про callback адрес и webhooks.

Из описания методов API:

Для активации API CRM необходимо выбрать в левом меню пункт "Активация API". В нем необходимо активировать API, сгенерировать токен авторизации и настроить URL для обратного вызова. URL для обратного вызова должен быть доступен в публичном интернете.

Если мы не предполагаем использование входящих вызовов в CRM, то можно поднять простой HTTP сервис с методом POST.

 

 

 

Адрес запроса будет выглядеть так:

http://ххх.ххх.ххх.ххх/mts/hs/api/post/subscription

Примерный код обработки входящих запросов

Функция ШаблонURL1subscription(Запрос)   
	
	ТекДата = ТекущаяДата();
	суффикс = Формат(Год(текДата),"ЧГ=") + "_" + Формат(Месяц(Текдата),"ЧГ=") + "_" + Формат(День(Текдата),"ЧГ=");     
	ИмяЛога = "D:\Разработка\МТС\Логи\logHooks_" + суффикс + ".txt";
	ткс = НайтиФайлы(ИмяЛога);           //лог входящих запросо для отладки
	Текст = Новый ТекстовыйДокумент;
	Если НЕ ткс.Количество() = 0 тогда
		Текст.Прочитать(ИмяЛога);  
	КонецЕсли;
	СтрокаЗапрос = Запрос.ПолучитьтелоКакСтроку(); 
	
	Чтение = Новый ЧтениеJSON;   
	Чтение.УстановитьСтроку(СтрокаЗапрос);      
	Попытка           
		мДаты = Новый Массив;            //формат даты в запросе ФорматДатыJSON.JavaScript надо восстанавливать функцией ВосстановитьДатуJSON  
		мДаты.Добавить("startTime");
		мДаты.Добавить("endTime");
		мДаты.Добавить("answerTime");
		Данные = ПрочитатьJSON(Чтение,,мДаты,ФорматДатыJSON.JavaScript,"ВосстановитьДатуJSON",МТС);
	Исключение
		иск = ОписаниеОшибки();
	КонецПопытки;
	Чтение.Закрыть();
	Попытка	
		МТС.ДобавитьЗаписьВходящийЗапрос(Данные); //процедура заполнения регистра с протоколом входящих запросов
	Исключение
		
	КонецПопытки;
	
	Текст.ДобавитьСтроку(Формат(ТекДата,"ДЛФ=T") + "	" + СтрокаЗапрос);
	Текст.Записать(ИмяЛога);
	Ответ = Новый HTTPСервисОтвет(200);
	Возврат Ответ;     

КонецФункции  

И на всякий случай функция разбора даты:

&НаСервере
Функция ВосстановитьДатуJSON(Свойство, Значение, ДополнительныеПараметры) Экспорт
	
	Если Свойство = "answerTime" Или Свойство = "endTime" Или Свойство = "startTime" Тогда
		Результат = Дата(1,1,1);
		Если ЗначениеЗаполнено(Значение) Тогда 
			Попытка
				фЗначение = "new Date(" + Формат(Значение,"ЧГ=") + ")";
				Результат = ПрочитатьДатуJSON(фЗначение, ФорматДатыJSON.JavaScript);     
				Возврат Результат;
			Исключение
			КонецПопытки;
		КонецЕсли;   
	КонецЕсли;   
	
КонецФункции  

Теперь МТС при проверке нашего адреса получит код 200 и не отключит API взаимодействие. До выхода стабильной платформы 8.3.21 нет возможности поднять этот сервис на стороне УНФ. Т.к. МТС стучится к нам используя ключ авторизации а не Логин и пароль пользователя.  Оказывается можно.

В файле публикации default.vrd прописываем

Пример файловой базы:

ib="File="[КаталогВиртуальноПриложения]";Usr=[Пользователь];Pwd=[Пароль];"

Пример клиент-серверной базы:

ib="Srvr="tcp://[ИмяСервера]";Ref="[ИмяПубликации]";Usr=[Пользователь];Pwd=[Пароль];"

Получится примерно так:

<?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="/unf"
		ib="File=&quot;D:\УНФ&quot;;Usr=TelephonyService;Pwd=&quot;111111111&quot;;">

Ссылка на пруфы:

 https://its.1c.ru/db/metod81#content:6966:hdoc ) 

А Токен авторизации проверяется в самом коде программы.

В модуле http-сервиса:

 	Если НЕ ТелефонияСервер.КорректнаяПодписьЗапроса(Перечисления.ДоступныеАТС.ДомRu, Запрос.Заголовки["X-AUTH-TOKEN"]) Тогда
 			Ответ = СообщениеОбОшибке(
			400,
			ИмяСобытияДляЖурналаРегистрации,
			НСтр("ru='Некорректный ключ'"));
		ТелефонияСервер.ЛогироватьИсходящийОтвет(Ответ, ИдентификаторЗапроса);
		Возврат Ответ;
	КонецЕсли;

Однако, в дальнейшем есть смысл поднять сервис на отдельно взятой конфигурации и обеспечить взаимодействие с ней УНФ. Чтобы в УНФ поступали только "рабочие" звонки. Практика тестирования показала, что в регистрах оседает много ненужного мусора, который сложно отсеять. Информации во входящих запросах МТС маловато и ее сложно однозначно идентифицировать как конкретное событие. Примерно 90% информации - сервисного характера (пытаюсь дозвониться на ИД 1,2,3,4,5,6... ИД 3 ответил, ИД 1,2,4,5... положили трубку, а они и не брали, ИД3 - активен разговор, ИД3 закончил разговор и, зачем-то, повтор об остальных, которые не взяли трубки, и это продублировано с 2х IP адресов МТС).  Но это мое мнение и оно может быть не единственным. 

Далее продолжу разговор о получении записей разговора. Сейчас у них технические работы. Ждем...

МТС виртуальная АТС vpbx.mts.ru набор номера

См. также

Управление взаимоотношениями с клиентами (CRM) Телефония, SIP Облачные сервисы, хостинг Платформа 1С v8.3 1C:Бухгалтерия Управленческий учет Платные (руб)

Продукт интеграции возможностей Облачной АТС Билайн в систему 1С Предприятие 8. Звонки прямо из программы 1С, уведомления о текущих звонках, регистрация пропущенных и завершенных вызовов, ведение журнала, анализ данных об использовании мобильной связи.

12000 руб.

20.03.2019    23250    55    0    

38

Телефония, SIP Мессенджеры и боты Платформа 1С v8.3 1C:Бухгалтерия Россия Управленческий учет Платные (руб)

Интеграция 1С с телефонией и чатами WhatsApp и Telegram автоматизирует работу оператора со звонками и чатами и добавит вашей 1С элементы CRM системы. Храните всю историю взаимоотношений в 1С, не теряйте звонки, скачивайте, прослушивайте в любое время из карточки клиента или журнала звонков, держите руку на пульсе, используя блок отчетов по звонкам. Интегрируйте вашу 1С и чатами WhatsApp и Telegram, общайтесь с клиентами с единого номера и в одном окне. Теперь чаты с клиентами хранятся в карточке партнера в 1С, а не в личных мобильных ваших менеджеров.

4900 руб.

28.04.2022    16564    16    10    

42

Телефония, SIP Анализ продаж Платформа 1С v8.3 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Связка 1С и виртуальных АТС (от Мегафон, Zadarma, Новофон ) позволит четко ответить на вопросы: кто звонил, когда звонил, кому звонил, сколько говорил, сколько ждал на линии, что особо актуально при удаленной работе операторов и менеджеров, о чем говорили, результат разговора, обработаны ли пропущенные звонки, прослушать сам разговор, запланировать встречу, звонок, напоминание по результатам разговора. Возможность позвонить клиенту прямо из 1С одной кнопкой, оставить комментарий о звонке, посмотреть по каждому партнеру и клиенту, контакту клиента историю его звонков и взаимоотношений.

9600 руб.

08.05.2020    27984    32    74    

44

Телефония, SIP Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Модуль для интеграции облачной АТС "Билайн" и конфигураций на платформе 1С v8. Список поддерживаемых конфигураций: УТ 11.5, КА 2.5, ERP 2.5, УНФ 3.0 ,УНФ 1.6 и выше. Краткий перечень возможностей: - Подъем карточки клиента при звонке - Журнал звонков - Скачивание и прослушивание записей разговоров - Аналитика по звонкам. Не нужно покупать дорогостоящее оборудование и лицензии. Разговоры не зависят от наличия Интернета, он нужен только для получения данных с АТС в 1С. Подходит для выездных сотрудников, агентов, торговых представителей и т.п.

6120 руб.

17.07.2017    27160    14    23    

15

Телефония, SIP Облачные сервисы, хостинг Пользователь Платформа 1С v8.3 1C:Бухгалтерия Управленческий учет Платные (руб)

Продукт интеграции возможностей Виртуальной АТС Ростелеком в систему 1С Предприятие 8. Звонки прямо из программы 1С, уведомления о текущих звонках, регистрация пропущенных и завершенных вызовов, динамическая маршрутизация входящих звонков, ведение журнала, анализ использования связи.

12000 руб.

04.02.2021    21878    23    0    

26

Разработка внешних компонент Телефония, SIP Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

2400 руб.

04.05.2018    47517    124    66    

67

Телефония, SIP Платформа 1С v8.3 1С:Бухгалтерия 3.0 Платные (руб)

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

9600 руб.

30.01.2025    276    0    0    

1

Телефония, SIP Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Удобная универсальная обработка для быстрых звонков с мобильного телефона по контактам из 1С. Поддерживается работа с другими видами контактов. Возможно копирование карточки контакта на мобильный телефон. Просто отсканируйте QR-код камерой телефона!

3 стартмани

26.11.2024    301    2    bme    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user1799092 15.06.22 11:58 Сейчас в теме
Евгений, спасибо за материал! Можете как-нибудь связаться со мной? Может, контакты в моём профиле помогут. Есть пара вопросов по статье.
Оставьте свое сообщение