Эта публикация является продолжением моей публикации Звонок из карточки контакта через Asterisk без внешних компонент
Мне показалось, что делать авторизацию на АТС и загрузку файлов со странички CDR слишком сложно. Поэтому я попросил администратора АТС расшарить папочку с записями и смонтировать её на сервере 1С. Собственно для функционирования обработки этот путь необходимо указать в переменной ПутьКПапке в двух местах: в форме интерактивной загрузки и в модуле обработки в процедуре автоматической загрузки.
ПутьКПапке = "/home/usr1cv8/.1cv8/1C/asterisk/";
ВидКИ = "Внутренний"; // новый вид КИ, который заведён для внутреннего номера
Т.к. мы не знаем идентификатора звонка АТС, будем искать файл по направлению (out), номеру абонента, внутреннему номеру пользователя (для этого нам нужен вид контактной информации) и точному времени звонка. Вот тут важные моменты: обработка корректно найдёт только те звонки, которые были совершены с помощью расширения из моей предыдущей статьи и время на сервере 1С и АТС должно быть синхронизировано.
А дальше всё просто:
- получаем список звонков за последний час;
- производим преобразование телефонного номера;
- ищем файл по маске “out-номер_абонента-номер_внутренний-дата-время*.wav”;
- проверяем размер файла (если 44 байта, то там только заголовок);
- загружаем файл, прикрепляем к карточке.
Дата и время создания документа «Телефонный звонок» могут немного отличаться от даты и времени записи, т. к. файл создаётся сразу при инициализации звонка, а документ после того, как пользователь возьмёт трубку, но эта разница не может быть больше 30 сек. (см. настройку ТаймАаут из предыдущей статьи). Чтобы не пропустить такой файл, ищем файл не только по дате документа, но и на минуту вперёд.
Теперь подключаем обработку и указываем в расписании запуск в рабочее время каждые 30 минут. С помощью интерактивной загрузки контролируем полноту и качество.
Обработка проверена на конфигурации 1С:Комплексная автоматизация 2 (2.4.7.151) и должна работать на ERP и Управлении торговлей 11.
P.S. Развернул аналогичную систему на базе ОС Windows, дополнительно встроил конвертацию в mp3, файлы уменьшились в 2-3 раза. Соответственно нужно поставить библиотеку FFmpeg и правильно указать к ней путь:
Команда = "C:\Program Files\ffmpeg\bin\ffmpeg -i " + СтрокаСписка.Файл + " -vn -ar 8000 -ac 1 -ab 128K -f mp3 " + ИмяФайлаВМП3;