Настройка отправки записей разговоров в облако

stsprecord ("send to sprecord") - программа, предназначенная для отправки записей разговоров в облако SpRecord.

Программа добавляет запись разговора в очередь. Запись будет отправлена службой отправки в фоновом режиме. Если во время отправки не будет доступа к сети Интернет, отправка будет отложена до восстановления соединения.

deb rpm
x32 stsprecord_1.0.0-1_i386.deb stsprecord-1.0.0-1.i686.rpm
x64 stsprecord_1.0.0-1_amd64.deb stsprecord-1.0.0-1.x86_64.rpm

Использование

stsprecord fname userid time numberA numberB [ опции ].

Основные параметры
Параметр Назначение
fname Путь к файлу записи. Поддерживаются форматы wav и mp3.
userid Путь к файлу записи. Поддерживаются форматы wav и mp3. Идентификатор аккаунта облака SpRecord. Получить его можно на сайте https://sprecord.com
time Дата и время совершения записи в формате "yyyy-mm-dd hh:mm:ss". Обрамление кавычками обязательно.
numberA Номер абонента A.
numberB Номер абонента B.
Опциональные параметры
Параметр Назначение
-d direction Направление вызова. Возможные значения:
in - входящее
out - исходящее
-na name Имя абонента A.
-nb name Имя абонента B.
-s source Название источника записи. Это может быть программа, устройство и пр.
-ch channel Канал устройства, с которого производилась запись.
-cm comment Комментарий к записи.
-m Вызов был пропущен.

Возвращаемые значения

Программа устанавливает код завершения в зависимости от произошедших в результате обработки ошибок. Обратите внимание, что программа не возвращает результат отправки, т.к. отправка осуществляется службой отправки.

Код Назначение
0 Запись разговора успешно добавлена в очередь задач и будет отправлена при наличии соединения.
1 Указаны неверные параметры.
2 Не возможно определить длительность записи.
3 Внутренняя ошибка обработки, повторите попытку.
4 Служба отправки не доступна, повторите попытку после перезапуска службы отправки:
systemctl restart stsprecord.service

Пример использования

Ниже приведен диалплан для Asterisk. Им обеспечивается запись разговоров, сжатие в mp3 и отправка в облако SpRecord. Запись разговоров представлена как для двустороннего разговора, так и для конференц-связи. Вместо your_account_id_here должен быть указан идентификатор аккаунта облака SpRecord. Для выполнения сжатия требуется установка утилиты lame. Возможно совместное использование с программой предупреждения о записи astwarn.

[fromsip]
exten => _[12]X.,1,Set(caller=${CALLERID(num)})
exten => _[12]X.,n,Set(callee=${EXTEN})
exten => _[12]X.,n,Set(sdate=${EPOCH})
exten => _[12]X.,n,Set(fdate=${STRFTIME(${sdate},,%Y-%m-%d %H:%M:%S)})
exten => _[12]X.,n,Set(fname=/var/spool/asterisk/monitor/${UNIQUEID}-${callee}-${STRFTIME(${sdate},,%Y_%m_%d-%H_%M_%S)})
exten => _[12]X.,n,Set(ASTWARN(record)=true)
exten => _[12]X.,n,MixMonitor(${fname}.wav)
exten => _[12]X.,n,Dial(SIP/${EXTEN})
exten => _[12]X.,n,Hungup()

exten => 555,1,Set(caller=${CALLERID(num)})
exten => 555,n,Set(callee=${EXTEN})
exten => 555,n,Set(sdate=${EPOCH})
exten => 555,n,Set(fdate=${STRFTIME(${sdate},,%Y-%m-%d %H:%M:%S)})
exten => 555,n,Set(fname=/var/spool/asterisk/monitor/${UNIQUEID}-${callee}-${STRFTIME(${sdate},,%Y_%m_%d-%H_%M_%S)})
exten => 555,n,Set(CONFBRIDGE(bridge,record_conference)=yes)
exten => 555,n,Set(CONFBRIDGE(bridge,record_file)=${fname}.wav)
exten => 555,n,Set(fname=${fname}-${CUT(CHANNEL(linkedid),.,1)})
exten => 555,n,ConfBridge(${callee})
exten => 555,n,Hungup()

exten => h,1,StopMixMonitor()
exten => h,n,Set(cloudid=your_account_id_here)
exten => h,n,System(nice -n 19 /usr/bin/lame -b 32 --silent "${fname}.wav" "${fname}.mp3" && rm -f "${fname}.wav" && chmod o+r "${fname}.mp3" && stsprecord "${fname}.mp3" ${cloudid} "${fdate}" ${caller} ${callee})