Решение проблем с отображением записей в сторонних сервисах
При воспроизведении записей разговоров в сторонних сервисах (например CRM системах) возможно возникновение проблем. Записи могут запрашиваться по http (https) или подгружаться с файлового сервера (samba). Ошибки при подтягивании и воспроизведения записей разговоров с сервера Asterisk в другие сервисы могут быть вызваны из-за: Несоответствия запрашиваемого адреса и/или протокола адресу/протоколу по которому записи доступны Недостатка прав на […]
При воспроизведении записей разговоров в сторонних сервисах (например CRM системах) возможно возникновение проблем. Записи могут запрашиваться по http (https) или подгружаться с файлового сервера (samba). Ошибки при подтягивании и воспроизведения записей разговоров с сервера Asterisk в другие сервисы могут быть вызваны из-за:
- Несоответствия запрашиваемого адреса и/или протокола адресу/протоколу по которому записи доступны
- Недостатка прав на чтение у соответствующих файлов на сервере
- Несоответствия запрашиваемого формата записей имеющемуся на сервере
- Истекшим сроком полученного сертификата (если записи запрашиваются по https)
- Восприятия браузером сертификата как недоверенного (если записи запрашиваются по https, при использовании самоподписанного сертификата)
- Несоответствия отслеживаемого каким-либо сервисом приложения, обеспечивающего запись, и используемого для записи разговоров на сервере в текущий момент (MixMonitor, Monitor)
- Недоступности того ресурса, куда ранее записи были перенесены
- Отсутствия записей вследствие соответствующего значения ранее установленного параметра, обеспечивающего запись разговора, при прохождении по данному маршруту
И, также, отсутствия записей в связи с истекшим сроком их хранения, после которого они, например, были удалены скриптом, запускаемого планировщиком.
Несоответствие запрашиваемого адреса/протокола
Создаем в /var/www/html/ символьную ссылку на директорию с записями (по умолчанию напр. /var/spool/asterisk/monitor)
ln -s /var/spool/asterisk/monitor /var/www/html/
При получении записей по http в конфигурационном файле /etc/httpd/conf/httpd.conf
необходимо добавить директивы:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html/monitor
<Directory /var/www/html/monitor>
Options +Indexes +FollowSymLinks -SymLinksIfOwnerMatch
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
При получении записей https — директиву Directory добавляем в конфигурационный файл /etc/httpd/conf.d/ssl.conf.
Для применения изменений необходимо перезапустить Apache
service httpd restart
При получении записей с файлового сервера (samba) необходимо настроить samba сервер – подробнее в статье «Samba и удалённый доступ к файлам (Centos 6.5)».
Недостатка прав на чтение у записей и директорий
Для подтягивания записей разговоров у файлов должны быть установлены права на чтение. Для изменений прав и владельца существуют команды chmod и chown, для просмотра – ls -l .
chmod +r /путь/к/файлу установить права на чтение
chown asterisk:asterisk /путь/к/файлу сменить владельца файла на пользователя asterisk
tree /var/spool/asterisk/monitor/ просмотр содержимого в виде дерева
ls -l /var/spool/asterisk/monitor/2020/07/09 / просмотр содержимого и установленных прав
Во FreePBX также установить владельца всех файлов и директорий, необходимых для корректной работы, командами
аmportal chown (в старых версиях FreePBX)
В новых версиях
fwconsole chown
Несоответствие запрашиваемого формата записей имеющемуся на сервере
Разговоры записываются обычно в формате wav и, далее, в период наименьшей нагрузки (ночью) конвертируются в mp3. При этом часть записей хранится в формате wav, часть записей – в формате mp3 из-за чего могут возникнуть проблемы с подтягиванием записей разговоров в различные сервисы.
Записи разговоров можно также конвертировать в mp3 сразу — подробнее см. в статье «Скрипт конвертации записей в mp3 на лету».
Для переадресации записей в нужный формат при их получении по http(htts) необходимо добавить в конфигурационный файл Apache(там где определена директива с хранящимися записями — <Directory /var/www/html/monitor>) следующие директивы:
RewriteEngine On
#Если нет записи в wav редирект на mp3
#Если запрос оканчивается на .wav
RewriteCond %{REQUEST_FILENAME} \.wav$ [NC]
#если не файл
RewriteCond %{REQUEST_FILENAME} !-f
#если не директория
RewriteCond %{REQUEST_FILENAME} !-d
#Редирект на .mp3
RewriteRule ^(.*)\.wav$ $1.mp3 [R=301,L]
#Если нет записи в wav редирект на mp3:
#Если запрос оканчивается на .mp3
RewriteCond %{REQUEST_FILENAME} \.mp3$ [NC]
#если не файл
RewriteCond %{REQUEST_FILENAME} !-f
#если не директория
RewriteCond %{REQUEST_FILENAME} !-d
#Редирект на .wav
RewriteRule ^(.*)\.mp3$ $1.wav [R=301,L]
Также, убедитесь, что в конфигурационном файле /etc/httpd/conf/httpd.conf присутствует директива, обеспечивающая загрузку модуля — mod_rewrite.so
Для применения изменений необходимо перезапустить Apache
service httpd restart
После этого, если каким-либо сервисом по http(https) была запрошена существующая запись, но не в том формате, произойдет переадресация на существующую запись.
Истекшим сроком полученного сертификата
В случае получения записей по HTTPS, после истечения срока действия (обычно – несколько лет), например, браузер Google Chrome, будет выдавать предупреждение NET::ERR_CERT_DATE_INVALID и не откроет страницу с записью. Сгенерировать новый сертификат можно командой:
openssl req -new -x509 -days 1825 -sha256 -newkey rsa:1024 \
-nodes -keyform PEM -keyout private_key1.pem -outform PEM \
-out new_cert.pem -subj '/O=Organization/CN=pbx.organization.ru'
days — срок действия сертификата (1825 — 5лет)
O — название организации
CN — домен
Посмотреть информацию о сертификате можно выгрузив его, например, утилитой WinSCP, далее в Windows при двойном клике на сертификат откроется окно с информацией о нем:
Восприятие браузером сертификата как недоверенного
При использовании самоподписанных сертификатов браузеры могут их воспринимать как недоверенные.
Можно заказать платный сертификат более высокого уровня доверия в соответствующих сервисах, либо, используемый самоподписанный сертификат можно вручную добавить в доверенные.
В браузере Google Chrome для добавления сертификата в доверенные необходимо перейти
Меню->Настройки->Конфиденциальность и безопасность->Безопасность->Настроить сертификаты
Можно также использовать поиск по настройкам т.к. в различных версиях браузера местоположение может различаться.
Далее нажать «Импорт», в открывшемся окне выбрать сертификат и поместить его в хранилище.
Несоответствие отслеживаемого каким-либо сервисом приложения, обеспечивающего запись, и используемого в текущий момент
Для записи разговоров может использоваться приложение MixMonitor либо Monitor. Если какой-либо скрипт, например, коннектор «Простые звонки» отслеживает запуск приложения MixMonitor, а для записи разговоров на сервере используется другое приложение, то необходимо изменить использующееся для записи звонков приложение. В Астериск – изменить используемое приложение в конфигурационных файлах. Во FreePBX можно скопировать соответствующий участок диалплана и переписать его в extensions_override_freepbx.conf, заменив используемое приложени, либо добавить соответствующий переключатель на вкладку Advanced Settings(Расширенные настройки) см. подробнее в статье “Упрощение перевода записей в режим стерео в FreePBX”.
Недоступность того ресурса, куда ранее записи были перенесены
В случае, если записи ранее были перенесены на какой-либо другой ресурс, который сейчас недоступен, они также не будут подтягиваться и отображаться в сторонних сервисах. Если записи разговоров были вынесены, например, на отдельный ресурс (диск, drbd ресурс, raid массив), необходимо, помимо всего прочего, проверить доступен ли он и примонтирован ли на данном сервере, например, командой
lsblk
Отсутствие записей вследствие соответствующего значения ранее установленного параметра, обеспечивающего запись разговора
Если, например, при добавлении нового добавочного, входящего/исходящего маршрута для него не была также включена запись разговоров (или значение было переопределено другими, более приоритетными параметрами), то запись будет отсутствовать.
Существует несколько возможных значений опций записи разговоров:
Force(записывать, принудительно)
Yes(да)
Don’t Care(в зависимости от установленных значений записи в других модулях разговор будет записан или не записан, т.е. это значение не изменяет каких-либо значений)
No(нет)
Never(никогда).
Force, Never могут перезаписывать значения, установленные в других модулях.
Yes, Don’t Care, No – могут быть перезаписаны другими опциями.
Для гарантированного включения записи разговоров при прохождении вызова, например, по маршруту входящий маршрут->очередь->добавочный номер или добавочный номер->исходящий маршрут опция записи разговора должна быть установлена в Force (запись принудительно), например у добавочного (в веб-интерфейсе FreePBX находится Applications(Приложения)->Extensions(Добавочные) вкладка Advanced(Дополнительно), раздел Recording options(Запись разговоров) ).
Про изменение значения параметров по умолчанию, обеспечивающих запись разговоров см. подробнее в статье «Доработка FreePBX. Включение записей разговоров по умолчанию на внутренних номерах».
Отсутствие записей в связи с истекшим сроком их хранения
Вследствие ограниченного объема хранилищ, записи разговоров периодически удаляются, поэтому, если истек их срок хранения, записи на сервере не будет. Например, записи старше 60 дней в crontab могут удаляться заданием вида (с учетом следования по символьным ссылкам):
0 * * * * /usr/bin/find -L /var/spool/asterisk/monitor/ -mtime +60 -exec rm -rf {} \;
Для, того, чтобы записи хранились достаточно продолжительное время их можно вынести на сторонний ресурс, имеющий значительно больший объем. Сконвертированные в mp3 записи будут примерно занимать:
1Мб ~ 0,08 час (~5мин.)
1Гб ~85 час
500Гб ~8738 час
1Тб ~87381 час
Про перенос записей разговоров на Google диск или на Yandex диск см. статьи:
«Запись разговоров Asterisk на google drive по расписанию» и «Копирование записей разговоров и конфигурационных файлов на Яндекс диск».
Для переноса, например, на выделенный диск, его необходимо предварительно разметить, примонтировать. Подробнее см. в данной статье.
Далее, скопировать имеющиеся записи
cp /var/spool/asterisk/monitor/* /mnt/monitor
Удалить папку, где они ранее хранились, вместе с содержимым
rm -rf /var/spool/asterisk/monitor/
Создать вместо нее символическую ссылку на примонтированную директорию
ln -s /mnt/monitor /var/spool/asterisk/monitor
Изменить права, владельца, группу
chown asterisk:asterisk /mnt/monitor
chmod 755 /mnt/monitor
chown asterisk:asterisk /var/spool/asterisk/monitor
chmod 755 /var/spool/asterisk/monitor
После этого, проверить
ls -l /mnt/
ls -l /var/spool/asterisk/
Остались вопросы?
Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
VoIP оборудование
ближайшие курсы
Новые статьи
10 доводов в пользу Asterisk
Распространяется бесплатно.
Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.
Безопасен в использовании.
Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.
Надежен в эксплуатации.
Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.
Гибкий в настройке.
Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.
Имеет огромный функционал.
Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.
Интегрируется с любыми системами.
То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.
Позволяет телефонизировать офис за считанные часы.
В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.
Отличная масштабируемость.
Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.
Повышает управляемость бизнеса.
Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.
Снижает расходы на связь.
Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.