Чиним прослушивание звонков

Работающая запись звонков выглядит так:

  1. Если включена опция Выгружать записи звонков на портал, то к делу (звонку) прикрепляется файл в mp3 формате;

  2. Если включена опция Оставлять записи на сервере, то при открытии дела (звонка) в описании после слов “Длительность звонка” появляется плеер и ссылка “Скачать запись”. При клике на плеер проигрывает запись, при нажатии “Скачать запись” – сохраняется файл.

Если запись не проигрывается и не скачивается, то выполняем последовательно следующие шаги.

1. Включена ли запись в Астериск?

Проверьте включена ли запись разговоров для всех используемых контекстов в Астериск. Для FreePBX она включается одной настройкой. В других случаях можно воспользоваться несколькими командами.

2. Работает ли ссылка в браузере?

Копируем ссылку для скачивания записи и пробуем вставить ее в адресную строку в браузере. Ссылка вида: http://<Asterisk IP>:8077/get_conversation_recording?id=1542785260.1998&from=89222222222&to=101

Если получили запись, значит со ссылкой все хорошо и запись не проигрывается из-за проблем с плеером в браузере на странице Битрикса. Рекомендуем попробовать проиграть в нескольких разных браузерах. В Google Chrome 80 есть ограничение по получению смешанного контента, получаемого по http запросу. Решить можно так.

Если ответ по ссылке Not found – тестируем ссылку в консоли на сервере (следующий шаг).

Если включен первый вариант, когда записи загружаются на Битрикс, то проверьте, установлен ли lame на сервер, который преобразует wav файлы Астериска в mp3 файлы необходимые для Битрикса. Подробнее...

3. Работает ли ссылка на сервере?

Выполняем команду wget ‘ссылка’ в консоли сервера, где стоит модуль. Если запись получена – запрос корректный, в базе запись находится, значит проблема в сети – запрос из Битрикса не может "достучаться" до сервера. Например, закрыт порт 8077 на роутере… Если запись не получена, то двигаемся дальше.

4. Проверяем путь до записи на сервере Астериск

Стандартно записи хранятся в директории /var/spool/asterisk/monitor/2018/… Эта директория должна быть прописана в конфиге, Раздел Asterisk, Путь до файлов с записями разговоров "recordings_dir": /var/spool/asterisk/monitor/

А также корректно ли выбран параметр Файлы с записями хранятся в поддиректориях согласно дате разговора "recordings_dir_subdirs_by_date": true. Если эти настройки корректны, то проверяем, что в логе и базе данных. В Админке это выглядит следующим образом.

5. Проверяем запрос и ответ в логе модуля

Если путь до файла указан верно, то смотрим в лог модуля /var/log/bx24asrerisk.log .

При клике на ссылку “Скачать запись” в логе отмечается запрос в cdr для поиска пути до записи по параметрам звонка. Пример:

select `cdr`.`recordingfile`, `cdr`.`calldate` from `cdr` where `cdr`.`uniqueid` = '1540542254.2969' and (`cdr`.`src` like '%3512777720' or `cdr`.`dst` like '%3512777720' or `cdr`.`src` like '%912' or `cdr`.`dst` like '%912' or `cdr`.`src` in (112233, 123456) or `cdr`.`dst` in (112233, 123456)) and `cdr`.`recordingfile` <> '' and `cdr`.`recordingfile` is not null limit 1

И ответ базы данных на этот запрос: Result of record file path customization: [/var/spool/asterisk/monitor/…………..]

При невозможности выполнить запрос, будет указано “Could not find record by sql-query”. Если запрос корректный, но его содержание пустое, то в ответ будет Empty set.

6. Проверяем, что в CDR

Нужно взять эту команду и выполнить в консоли mysql либо в веб-версии админки модуля на странице логов (раздел MySQL).

Далее постепенно убирать параметры в запросе, пока не найдем, на каком аргументе ошибка.

Самый короткий запрос:

select * from `cdr` where `cdr`.`uniqueid` = '1540542254.2969'

Должен вернуть строку в CDR по этому звонку.

Проверяем:

  1. Существует ли столбец “recordingfile”, куда пишется название файла записи? Если он называется по другому, то можно просто изменить его в админке Настройка / База данных / Имена столбцов. Если его нет, то нужно создать и настроить, чтобы в него писалось название файла записи.

  2. В этом столбце есть названия записей? Если названий нет, то либо запись разговоров не включена, либо при разговоре не заполняется данное поле. Это может исправить администратор телефонии.

  3. В поле ‘cnum’ есть номер звонящего? Если оно пустое, то вместо него можно использовать dst. Указать это в админке в разделе Настройка / База данных / Имена столбцов.

7. Формат файлов записей.

Для проигрывания записей в Битрикс24 и для успешного конвертирования в mp3, файлы записей на АТС должны храниться в формате wav, формат WAV не поддерживается Битрикс24 и Lame(кодек используемый модулем для конвертирования).

В FreePBX формат записей можно поменять в меню Setting - Advanced Settings - Call Recording Format

8. Свободное место на диске в Битриксе.

Если в настройках модуля указано отправлять записи файлами в Битрикс и файлы не прикрепляются нужно проверить количество свободного места на диске в Битриксе.

Last updated