Страница 1 из 2

Asterisk PBX: Присваивание имени файла аудиозаписи

Добавлено: 15 май 2018, 13:21
ecovinchi
Всем хорошего настроения! Появилась задача записи телефонных звонков и последующих манипуляций, но столкнулся с проблемкой - имена файлов записи звонков внешних входящих не содержат внутренний номер, что нужно. Нашел решение тут https://habr.com/sandbox/58877/ но куда прописать этот макрос непойму. Сюда /etc/asterisk/extensions.conf просто скопировать или как?
зы:подойдет и другое решение, если кто знает...

Re: Asterisk PBX: Присваивание имени файла аудиозаписи

Добавлено: 15 май 2018, 14:24
awsswa
Выключить запись везде
На входящей-исходящей маршрутизации, группах, очередях
Включить только на номерах

Re: Asterisk PBX: Присваивание имени файла аудиозаписи

Добавлено: 15 май 2018, 17:58
ecovinchi
хм... это первое что пробовал, при выключенной записи в маршрутах и включенной в экстеншенах входящие внешние не писались вообще, но возможно что не так сделал. перепроверю.

перепроверил, непишет вх.внеш если в экстеншене запись включать. при этом все остальные типы звонков пишутся зараза.

Re: Asterisk PBX: Присваивание имени файла аудиозаписи

Добавлено: 17 май 2018, 05:56
ecovinchi
неужели никто не направит куда рыть? :shock:

Re: Asterisk PBX: Присваивание имени файла аудиозаписи

Добавлено: 17 май 2018, 06:52
virus_net
Обычно все роют логи и документацию.

Re: Asterisk PBX: Присваивание имени файла аудиозаписи

Добавлено: 17 май 2018, 11:49
ecovinchi
макрос из первого поста подскажите куда прописывать и вместо чего, люди добрые? в документации такого не вычитать, а добиться полного понимания работы астериска не могу себе позволить. в логах насколько я понимаю тоже ничего не будет полезного, звонок приходит на группу и поэтому как я понимаю он и не пишится даже после перевода.

Re: Asterisk PBX: Присваивание имени файла аудиозаписи

Добавлено: 17 май 2018, 12:00
ded
Вы используете FreePBX, так? Значит Присваивание имени файла аудиозаписи вас не должно волновать, потому что ориентироваться кто кому звонил по имени файла - чушь. Все записи индексируются (составляется реестр текущих значений имён файлов записей с пометками кто и кому звонил, записывается в базу данных), и различные CDR логи отображают список соединений ассоциируя соотв. аудиозапись согласно этому реестру. Если вы докопаетесь до макроса, переименовывающего файлы, то сломаете этот реестр. По имени файла вам будет понятно, а системе - непонятно. Изучайте документацию.
ecovinchi писал(а): в логах насколько я понимаю тоже ничего не будет полезного, звонок приходит на группу и поэтому как я понимаю он и не пишится даже после перевода.
всё там есть в логах.
Разбирайтесь. Для экстеншн есть запретное правило политики записей: если у абонента А разрешено, а у абонента Б запрещено, то А позвонит Б или наоборот - аудиозапись не будет создаваться.

Re: Asterisk PBX: Присваивание имени файла аудиозаписи

Добавлено: 17 май 2018, 12:18
awsswa
Ладно. Я буду подсказывать. Поможет или нет ХЗ.

Имя формируется вот тут
[sub-record-check]

а конкретно вот этой строчкой

exten => recordcheck,n,Set(__CALLFILENAME=${ARG2}-${ARG3}-${FROMEXTEN}-${TIMESTR}-${UNIQUEID})

Осталось только переписать её и внести весь кусок [sub-record-check] в extensions_override_freepbx.conf

Но, это ну никаким боком не внесет туда имя кто и кому звонил без куче проверок раньше
То есть выше exten => recordcheck,n,Set(__CALLFILENAME=${ARG2}-${ARG3}-${FROMEXTEN}-${TIMESTR}-${UNIQUEID})
надо сделать несколько манипуляций для выяснения имени

Помогло ?

Re: Asterisk PBX: Присваивание имени файла аудиозаписи

Добавлено: 17 май 2018, 12:45
ecovinchi
MixMonitor выполняется раньше Dial и файлу будет присвоено имя, которое не изменится при трансфере звонка на другой внутренний номер. Таким образом, все записи таких звонков будут именоваться именем пира куда первоначально поступил звонок, внезависимости был ли этот звонок в дальнейшем переведен или нет. Что не удобно при «разборе полетов».

Один из вариантов решения следующий:

Код: Выделить всё

[macro-INrecordsFROMOUTSIDE]
exten => s,1,Ringing
exten => s,n,NoOp(${CALLERID(num)})
exten => s,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
exten => s,n,Set(fname=${CDR(uniqueid)}.g729)
exten => s,n,Set(recdir_temporary=/var/spool/asterisk/monitor/inbound_records/${STRFTIME(,,${MACRO_CONTEXT})})
exten => s,n,MixMonitor(${recdir_temporary}/${fname})
exten => s,n,Set(fix_clid=${CALLERID(num)})
exten => s,n,Dial(${ARG1},15,tT)
exten => h,1,System(mkdir -p ${recdir_temporary}/${DIALEDPEERNUMBER})
exten => h,n,Set(recdir_final=${recdir_temporary}/${DIALEDPEERNUMBER})
exten => h,n,Set(fname2=${recdir_final}/${STRFTIME(${EPOCH},,%d_%m_%Y_%Hh_%Mmin_%Ssec)}_from_${fix_clid}_to_${DIALEDPEERNUMBER}.g729)
exten => h,n,System(mv ${recdir_temporary}/${fname} ${fname2})
exten => h,n,Hangup()
вот это не пойму в какой конфиг прописывать. сюда: extensions_override_freepbx.conf?

Re: Asterisk PBX: Присваивание имени файла аудиозаписи

Добавлено: 17 май 2018, 12:59
ded
Такое ощущения, что вы тут сам с собой переписываетесь, не читая что другие пишут.