Home » Форум

Форум

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

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

 

alexkg1
(@alexkg1)
Active Member
Присоединился: 10 месяцев назад
Сообщения: 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 лет назад
Сообщения: 381
07.11.2018 21:33  

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


ОтветитьЦитата
alexkg1
(@alexkg1)
Active Member
Присоединился: 10 месяцев назад
Сообщения: 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 10 месяцев назад 2 times by alexkg1

ОтветитьЦитата
alexkg1
(@alexkg1)
Active Member
Присоединился: 10 месяцев назад
Сообщения: 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 10 месяцев назад 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 лет назад
Сообщения: 381
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
Присоединился: 2 месяца назад
Сообщения: 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 2 месяца назад 2 times by Francyz

ОтветитьЦитата
Francyz
(@francyz)
New Member
Присоединился: 2 месяца назад
Сообщения: 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:

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