Home » Форум

Форум

вопрос о макросе за...
 

[Решено] вопрос о макросе записи разговоров  

 

alexkg1
(@alexkg1)
Active Member
Присоединился: 1 год назад
Сообщения: 7
07.11.2018 21:07  

здравствуйте, спасибо за статью, настраиваю по вашему примеру. Не могу разобраться с макросом записи разговора. Буду признателен за подсказку. При звонке на внутренний номер, выходит ошибка, и звонок на вн. номер не работает

WARNING[2182][C-00000009]: pbx.c:2906 pbx_extension_helper: No application 'Macro' for extension

конфиг

Макрос записи разговоров 
[macro-recording] 
exten => s,1,Set(fname=${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)}-${ARG1}-${ARG2}); 
exten => s,n,Set(monopt=nice -n 19 /usr/local/bin/lame -b 32 --silent "${DIR_RECORDS}${fname}.wav" "${DIR_RECORDS}${fname}.mp3" && rm -f "${DIR_RECORDS}${fname}.wav" && chmod o+r "${DIR_RECORDS}${fname}.mp3"); 
exten => s,n,Set(CDR(filename)=${fname}.mp3); 
exten => s,n,Set(CDR(realdst)=${ARG2}); 
exten => s,n,MixMonitor(${DIR_RECORDS}${fname}.wav,b,${monopt}); 
exten => s,n(no),Verbose(Exit record); 

[call-out] 
;исходящие звонки 
exten => _XXX,1,Macro(recording,${CALLERID(num)},${EXTEN}) 
exten => _XXX,n,Dial(SIP/${EXTEN})

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

 


Цитата
Zerox
(@zerox)
Reputable Member Admin
Присоединился: 6 лет назад
Сообщения: 429
07.11.2018 21:33  

Регистр букв имеет значение. У вас написано [macro-recording] , а при обращении к макросу используете Macro.


ОтветитьЦитата
alexkg1
(@alexkg1)
Active Member
Присоединился: 1 год назад
Сообщения: 7
07.11.2018 22:43  

спасибо я уже пробывал и так и так

может дело в модуле app_macro или он тут не причем? 

localhost*CLI> module show like app_macro 
Module                         Description                              Use Count  Status      Support Level 
0 modules loaded 
localhost*CLI>

установил 16 релиз ,не вижу app_macro.so, либо макрос еще нужно добавить в конфигурации

либо при компиляции в menu select указать модуль в Module Embedding 

 

This post was modified 1 год назад 2 times by alexkg1

ОтветитьЦитата
alexkg1
(@alexkg1)
Active Member
Присоединился: 1 год назад
Сообщения: 7
07.11.2018 23:07  

перекомпилировал с модулем app_macro

[Nov 8 02:18:23] WARNING[14037][C-00000001]: app_macro.c:274 _macro_exec: Macro() is deprecated and will be removed from a future version of Asterisk.
[Nov 8 02:18:23] WARNING[14037][C-00000001]: app_macro.c:275 _macro_exec: Dialplan should be updated to use Gosub instead.

файлы создаются но не прослушиваются, наверное надо искать другое решение записи 

update вроде заработало спасибо

This post was modified 1 год назад by alexkg1

ОтветитьЦитата
vandalizm123
(@vandalizm123)
Eminent Member
Присоединился: 2 года назад
Сообщения: 43
20.06.2019 15:02  

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

[macro-recording]
exten => s,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)}__${ARG1}__call_${ARG2});
exten => s,n,Set(monopt=nice -n 19 /usr/local/bin/lame -b 32 --silent "${DIR_RECORDS}${fname}.wav" "${DIR_RECORDS}${fname}.mp3" && rm -f "${DIR_RECORDS}${fname}.wav" && chmod o+r "${DIR_RECORDS}${fname}.mp3");
exten => s,n,Set(CDR(filename)=${fname}.mp3);
exten => s,n,Set(CDR(realdst)=${ARG2});
exten => s,n,MixMonitor(${DIR_RECORDS}${fname}.wav,b,${monopt});
exten => s,n(no),Verbose(Exit record);

Вопрос таков сейчас все разговоры складируются в одну папку. Можно ли сделать так что при записи были в разных папка по дате?  

например сегодня 20.06.2019 в этот день записи скидываются  сюда. А на следующий день создавалась папка уже 21.06.2019 и записи скидывались туда. Вообще делал ли что нить подобное?

 


ОтветитьЦитата
Zerox
(@zerox)
Reputable Member Admin
Присоединился: 6 лет назад
Сообщения: 429
20.06.2019 16:46  

Вот пример того, что вам нужно. Это настраивал не я, но взял пример с готового сервера.

exten => 214,1,SET(FILENAME=in_${STRFTIME(${EPOCH},,%H_%M_%S)}_${CALLERID(num)})
exten => 214,n,SET(MONITOR_FILENAME=${STRFTIME(${EPOCH},,%Y)}/${STRFTIME(${EPOCH},,%Y-%m)}/${STRFTIME(${EPOCH},,%Y-%m-%d)}/${FILENAME})
exten => 214,n,Set(monopt=nice -n 19 /usr/bin/lame -b 32 --silent "${RECPATH}/${MONITOR_FILENAME}.wav" "${RECPATH}/${MONITOR_FILENAME}.mp3" && rm -f "${RECPATH}/${MONITOR_FILENAME}.wav" && chmod o+r "${RECPATH}/${MONITOR_FILENAME}.mp3")
exten => 214,n,Set(CDR(filename)=${FILENAME}.mp3);
exten => 214,n,Mixmonitor(${MONITOR_FILENAME}.wav,b,${monopt})
exten => 214,n,GotoIfTime(*,*,*,*?menu1,214,1)
exten => 214,n,Set(home="/home/proton/menu")
exten => 214,n,Answer()
exten => 214,n,WaitExten(3)
exten => 214,n,Playback(${home}/nerab)
exten => 214,n,Hangup()

На выходе получается вот такая структура директорий:

/mnt/calls/2019/2019-06/2019-06-01/in_13_27_31_79041236685.mp3

Разберитесь в примере и сделайте по аналогии.


ОтветитьЦитата
vandalizm123
(@vandalizm123)
Eminent Member
Присоединился: 2 года назад
Сообщения: 43
21.06.2019 07:29  

Спасибо


ОтветитьЦитата
Francyz
(@francyz)
New Member
Присоединился: 4 месяца назад
Сообщения: 2
22.07.2019 09:38  

Народ, ну подтолкните еще в правильном направлении.

Изменил первую строчку в экстеншене записи и сделал вот так:

exten => s,1,Set(fname=${STRFTIME(${EPOCH},,%Y/%m/%d)}/${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)}-${ARG1}-${ARG2});

Это позволяет теперь писать в заданную по дефолту директорию по папкам /2019/07/17 к примеру. Все проверено. Папка создалась, записи кидаются в нее, НО не идет отображение на веб-форме.

Я зашел в конфиг и выбрал 4-ый пункт в разделе формата хранения:

## Если 4, то файлы записей должны распределяться по папкам Asterisk-ом в соответствии с датой «/home/calls/2015/12/01».
‘storage_format’ => 4,

НО как я понял это работает только если записи кидаются в дефолтную папку «/home/calls/», но у меня она другая, поэтому прослушать записи на форме не возможно.

Как можно подкорректировать конфиг форму, чтобы он смотрел не в /home/calls/, а в другой указанной папке ?

This post was modified 4 месяца назад 2 times by Francyz

ОтветитьЦитата
Francyz
(@francyz)
New Member
Присоединился: 4 месяца назад
Сообщения: 2
22.07.2019 10:28  
От: @francyz

Народ, ну подтолкните еще в правильном направлении.

Изменил первую строчку в экстеншене записи и сделал вот так:

exten => s,1,Set(fname=${STRFTIME(${EPOCH},,%Y/%m/%d)}/${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)}-${ARG1}-${ARG2});

Это позволяет теперь писать в заданную по дефолту директорию по папкам /2019/07/17 к примеру. Все проверено. Папка создалась, записи кидаются в нее, НО не идет отображение на веб-форме.

Я зашел в конфиг и выбрал 4-ый пункт в разделе формата хранения:

## Если 4, то файлы записей должны распределяться по папкам Asterisk-ом в соответствии с датой «/home/calls/2015/12/01».
‘storage_format’ => 4,

НО как я понял это работает только если записи кидаются в дефолтную папку «/home/calls/», но у меня она другая, поэтому прослушать записи на форме не возможно.

Как можно подкорректировать конфиг форму, чтобы он смотрел не в /home/calls/, а в другой указанной папке ?

Вопрос, закрыт. Невнимательно читал описание.

Если кому нужна рабочая версия с записями разговоров по папкам, то меняете 1-ую строчку на указанную мною выше, а в настройках вебформы в разделе ‘storage_format’ выбираете 5


ОтветитьЦитата
Share:

Пожалуйста, Вход или Зарегистрироваться