Скрипт конвертации записей в mp3 на лету. Отправка записи на почту с указанием информации по звонку
Разберем для начала сам скрипт. Нам понадобятся так же данные к таблице cdr mysql и почтовые ящики Создадим директорию и файл: Чтобы изменить права на папки и файлы, выполним в консоли следующие команды: Открываем файл: Для удобства оформим их сразу в переменные: Данные можно посмотреть в файле Далее формируем путь и имя файла в переменную, […]
Разберем для начала сам скрипт.
Нам понадобятся так же данные к таблице cdr mysql и почтовые ящики
Создадим директорию и файл:
$ mkdir /etc/asterisk/scripts/
$ touch /etc/asterisk/scripts/send-to-mail-mp3.sh
Чтобы изменить права на папки и файлы, выполним в консоли следующие команды:
$ chown –R asterisk:asterisk /etc/asterisk/scripts/
$ chmod 755 /etc/asterisk/scripts/send-to-mail-mp3.sh
Открываем файл:
$ nano /etc/asterisk/scripts/send-to-mail-mp3.sh
Для удобства оформим их сразу в переменные:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
cdrdb=asteriskcdrdb #имя БД
cdrtable=cdr #имя таблицы
astdbuser=freepbx #пользователя смотрим в /etc/asterisk/res_odbc_additional.conf
astdbuserpass=xxxxxxxxxxxxxxxxxxx #пароль там же в /etc/asterisk/res_odbc_additional.conf
[email protected] # почта НА которую будем отправлять файл записи
[email protected] # почта С которой отправляем сообщение
# 1{YEAR} 2{MONTH} 3{DAY} 4{TIMESTR} 5{FROMEXTEN} 6{CALLFILENAME} 7{MIXMON_FORMAT} 8{ARG3} 9{FROM_DID}
Данные можно посмотреть в файле
/etc/asterisk/res_odbc_additional.conf
Далее формируем путь и имя файла в переменную, а затем используя Lame конвертируем
Важно! В системе должен быть установлен Lame
Чтобы установить Lame используйте следующие команды:
$ yum -y install epel-release
$ yum -y install lame
В этой части мы так же удаляем за собой предыдущий формат записи
FFILENAME=/var/spool/asterisk/monitor/$1/$2/$3/$6.$7
test ! -e ${FFILENAME} && exit 21
WAVFILE=${FFILENAME}
MP3FILE=`echo ${WAVFILE} | sed 's/.wav/.mp3/g'`
LOWNICE="nice -n 19 ionice -c3"
${LOWNICE} lame --quiet --preset phone -h -v ${WAVFILE} ${MP3FILE}
test -e ${MP3FILE} && rm -f ${WAVFILE}
${LOWNICE} ffmpeg -loglevel quiet -y -i ${MP3FILE} -f wav -acodec copy ${WAVFILE} >/dev/null 2>&1
test -e ${WAVFILE} && rm -f ${MP3FILE}
Далее, т.к. нам понадобится скачивать записи в формате mp3, следует учесть, что стандартный CDR во FreePBX видит только wav. Поэтому сразу за конвертацией заменим расширение файла в бд.
mysql --user="$astdbuser" --password="$astdbuserpass" --database="$cdrdb" --execute='UPDATE '$cdrtable' SET recordingfile="'$6'.mp3" WHERE recordingfile="'$6'.wav";';
Теперь можем использовать все нужные переменные для отправки на почту с нужной нам информацией.
dt=$(date '+%m/%d/%Y %r');
/usr/local/bin/sendEmail.pl -f $fromemail -t $toemail -u "Запись разговора $dt $5 $8" -m "Уважаемый клиент! \n\n Записан разговор от $dt \n\n Номер линии АТС: $9 \n\n Кто звонил: $5 \n\n С кем говорил: $8 \n\n Запись разговора во вложении \n\n" -o message-charset=UTF-8 -a "${MP3FILE}"
На FreePBX заходим в Settings -> Advanced Settings
Включаем 2 настройки: Display Readonly Settings и Override Readonly Settings
Далее жмем Apply Config и там же в Advanced Settings после этого должно появиться поле Post Call Recording Script.
Вставляем туда путь к нашему скрипту и как раз указываем наши переменные:
/etc/asterisk/scripts/send-to-mail-mp3.sh ^{YEAR} ^{MONTH} ^{DAY} ^{TIMESTR} ^{FROMEXTEN} ^{CALLFILENAME} ^{MIXMON_FORMAT} ^{ARG3} ^{FROM_DID}
В консоли asterisk’a можем соответственно видеть, что скрипт удачно отработал после звонка
Проверим, что в нашу БД заносятся данные о звонках с расширением mp3:
Подключимся к mysql и выполним команды (дату установите нужную):
use asteriskcdrdb;
select calldate,dst,src,recordingfile from cdr where calldate BETWEEN CAST('2018-12-32' AS DATE) AND CAST('2018-12-33' AS DATE);
Как видно, данные наполняются уже с новым расширением.
Итог: сразу же, после каждого разговора запись конвертируется в mp3, удаляется изначальный wav файл, что бы не занимать место (ради чего мы в основном всё это и делали) и перезаписываем формат расширения в БД mysql CDR, что бы могли видеть и скачивать записи в CDR Reports FreePBX.
Ну и запись на почте:
Остались вопросы?
Я - Компаниец Никита, менеджер компании 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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.