В Comagic хранение записей звонков зависит от тарифного плана и настроек аккаунта.
Основные моменты:
-
Срок хранения
-
Записи обычно хранятся от 30 дней до 12 месяцев (зависит от тарифа).
-
-
Доступ к записям
-
Через личный кабинет Comagic (раздел "Звонки" → вкладка "Записи разговоров").
-
Можно прослушивать онлайн, скачивать в MP3 или WAV.
-
API Можно получить ссылку на запись. Отправить её на почту или загрузить в 1С.
-
-
Автоматическое удаление
-
После истечения срока хранения записи удаляются без возможности восстановления.
-
-
Ручное сохранение
-
Рекомендуется скачивать важные записи и хранить их локально или в сторонних хранилищах.
-
-
Настройки записи
-
Можно включать/отключать запись для разных линий или сотрудников.
-
Доступны параметры записи (все звонки, только входящие и т. д.).
-
В моем случае я отправлял записи звонков в почтовый ящик и хранил ссылки на разговоры там. Из 1С по запросу подключался к почтовому ящику, находил нужное письмо и проигрывал звонок.
Хранение ссылок на звонки на почте было выбрано, так как была другая программа (не 1С), из которой нужно было также проигрывать записи.
До настройки записи звонков нужно завести почту. Я у себя использовал yandex. Она стабильно работает через imap.
1. Запись звонков настраивается в личном кабинете Comagic, закладка уведомления.
Создаем новое уведомление, которое срабатывает при окончании звонка.
Отправляем письмо на почту, в теме письма добавляем номер телефона, по нему будем в дальнейшем делать поиск. В самом письме храним ссылку на телефонный разговор. Параметр {{record_file_links}}
2. В 1С из карточки клиента инициируем поиск всех звонков, которые принадлежат данному клиенту.
В коде отбираем все письма, в которых в теме письма встречается нужный номер телефона.
Почта = Новый ИнтернетПочта;
Попытка
Почта.Подключиться(ПолучитьПрофиль(), ПротоколИнтернетПочты.IMAP);
Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Загрузка почты'"),
УровеньЖурналаРегистрации.Ошибка,,,
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ОбщегоНазначения.СообщитьПользователю("Не удалось подключиться к почте!");
Возврат;
КонецПопытки;
ПараметрыОтбора = Новый Структура("Тема", Телефон);
МассивИдентификаторов = Почта.ПолучитьИдентификаторы(, ПараметрыОтбора);
Если МассивИдентификаторов.Количество() = 0 Тогда
ОбщегоНазначения.СообщитьПользователю("Не удалось найти звонки");
Возврат;
КонецЕсли;
Сообщения = Почта.Выбрать(Ложь, МассивИдентификаторов, Ложь);
Для каждого Сообщение Из Сообщения Цикл
СсылкаНаЗапись = ПолучитьСсылку(Сообщение.Тексты[0].Текст);
Если ПустаяСтрока(СсылкаНаЗапись) Тогда
Продолжить;
КонецЕсли;
СтрокаТаблицы = ДанныеПоЗвонкам.Добавить();
СтрокаТаблицы.Дата = Сообщение.ДатаОтправления;
СтрокаТаблицы.СсылкаНаАудио = СсылкаНаЗапись;
КонецЦикла;
Почта.Отключиться();
3. Если нужно проиграть ссылку, то открываем её в браузере.
ПерейтиПоНавигационнойСсылке(ТекДанные.СсылкаНаАудио);
Рекомендации от 1С. Для сведения к минимуму возможности перехвата пароля злоумышленниками не следует хранить пароли и другую конфиденциальную информацию в информационной базе.
Поэтому пароль от почты храним в безопасном хранилище.
&НаСервере
Функция ПолучитьПрофиль()
УстановитьПривилегированныйРежим(Истина);
НастройкиПочты = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища("НастройкиПочты");
УстановитьПривилегированныйРежим(Ложь);
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераIMAP = "imap.yandex.ru";
Профиль.ПользовательIMAP = НастройкиПочты.ПользовательIMAP;
Профиль.ПарольIMAP = НастройкиПочты.ПарольIMAP;
Профиль.ПортIMAP = 993;
Профиль.ВремяОжидания = 50;
Профиль.ИспользоватьSSLIMAP = Истина;
Возврат Профиль;
КонецФункции
Следует помнить, что подобное хранение паролей не решает всех проблем безопасности, а лишь усложняет задачу для злоумышленника. Если у него есть доступ к отладчику , то все пароли можно увидеть.
Для записи значений в БезопасноеХранилищеДанных вызываем функцию
НаборЗаписей = РегистрыСведений.БезопасноеХранилищеДанных.СоздатьМенеджерЗаписи();
НаборЗаписей.Владелец = "НастройкиПочты";
НаборЗаписей.Записать();
Владелец = "НастройкиПочты";
СтруктураДанных = Новый Структура;
СтруктураДанных.Вставить("ПользовательIMAP", "Почта");
СтруктураДанных.Вставить("ПарольIMAP", "Пароль");
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, СтруктураДанных);
Итоги:
Сейчас в Comagic около 400 записей. Поиск по номеру телефона в почтовом ящике занимает около 5 секунд. Для ускорения можно сделать уведомление и отправлять данные в 1С и хранить их в регистре сведений. Создание я описывал в статье Интеграция 1С и Comagic. Определение номера звонящего и открытие карточки в 1С. Данный код можно легко встроить в любую конфигурацию. Если уже есть БСП, то общие модули из dt файла не нужно переносить.
Тестировал на платформе 8.3.25.1501.