URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 96865
[ Назад ]

Исходное сообщение
"Asterisk voice recording macros"

Отправлено Shodan , 10-Апр-17 17:04 
Привет

Есть астериск 13.14.0 с макросом для записи в мп3 голоса в extensions.conf

[general]
static=yes
writeprotect=no
autofallthrough=no

[globals]
WAV=/srv/asterisk/wav
MP3=/srv/asterisk/mp3

[macro-recording]
exten => s,1,NoOp
same  => n,Set(fname=${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)}-${ARG1}-${ARG3})
same  => n,Set(monopt=nice -n 19 /usr/bin/lame -b 32 --silent "${WAV}/${fname}.wav" "${MP3}/${fname}.mp3" && unlink "${WAV}/${fname}.wav" && chmod o+r "${MP3}/${fname}.mp3")
same  => n,Set(CDR(filename)=${fname}.mp3)
same  => n,Set(CDR(userfield)=${ARG2})
same  => n,Set(CDR(realdst)=${ARG3})
same  => n,MixMonitor(${WAV}/${fname}.wav)
same  => n,MixMonitor(${WAV}/${fname}.wav,b,${monopt})

и есть некие правила с этим макросом

[incoming]

exten => 1111,1,NoOp
same  => n,Macro(recording,${CALLERID(num)},${CALLERID(name)},${EXTEN})
same  => n,Dial(SIP/1122)

exten => 2222,1,NoOp
same  => n,Macro(recording,${CALLERID(num)},${CALLERID(name)},${EXTEN})
same  => n,Dial(SIP/1133)


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

exten => 2222,1,NoOp
;same  => n,Macro(recording,${CALLERID(num)},${CALLERID(name)},${EXTEN})
same  => n,Dial(SIP/1133)

То происходит следущее - при дозвоне на 2222 идет звонок на 1133, абонент берет трубку и..тишина, его голоса не слышно. Возвращаем макрос и голос абонента возвращается.

Есть идеи как этот макрос может глобально аффектить сессии?


Содержание

Сообщения в этом обсуждении
"Asterisk voice recording macros"
Отправлено Дум Дум , 13-Апр-17 13:58 

> [macro-recording]
> exten => s,1,NoOp
> exten => 2222,1,NoOp
> ;same  => n,Macro(recording,${CALLERID(num)},${CALLERID(name)},${EXTEN})
> same  => n,Dial(SIP/1133)
> То происходит следущее - при дозвоне на 2222 идет звонок на 1133,
> абонент берет трубку и..тишина, его голоса не слышно. Возвращаем макрос и
> голос абонента возвращается.
> Есть идеи как этот макрос может глобально аффектить сессии?

Доброго дня. Предположу с потолка, погуглив, что при отключении макроса, вызов не попадает в екстеншен с именем "s" (Start)...?


"Asterisk voice recording macros"
Отправлено Shodan , 13-Апр-17 14:06 
>[оверквотинг удален]
>> exten => s,1,NoOp
>> exten => 2222,1,NoOp
>> ;same  => n,Macro(recording,${CALLERID(num)},${CALLERID(name)},${EXTEN})
>> same  => n,Dial(SIP/1133)
>> То происходит следущее - при дозвоне на 2222 идет звонок на 1133,
>> абонент берет трубку и..тишина, его голоса не слышно. Возвращаем макрос и
>> голос абонента возвращается.
>> Есть идеи как этот макрос может глобально аффектить сессии?
> Доброго дня. Предположу с потолка, погуглив, что при отключении макроса, вызов не
> попадает в екстеншен с именем "s" (Start)...?

Не совсем понял, почему вызов должен попадать в s, если явно указано правило для 2222 ?
Или может быть следует указывать явно Return() в конце макроса?


"Asterisk voice recording macros"
Отправлено Дум Дум , 13-Апр-17 14:47 
> Не совсем понял, почему вызов должен попадать в s, если явно указано
> правило для 2222 ?
> Или может быть следует указывать явно Return() в конце макроса?

Если мой вариант сразу кажется чушью, извини, скорее всего так и есть. У меня по астериску идёт начальная начитка.


"Asterisk voice recording macros"
Отправлено Pipe , 13-Апр-17 16:08 
Попробуй так:

exten => 2222,1,NoOp
;same  => n,Macro(recording,${CALLERID(num)},${CALLERID(name)},${EXTEN})
same  => Answer()
same  => n,Dial(SIP/1133)



"Asterisk voice recording macros"
Отправлено Pipe , 13-Апр-17 16:08 
exten => 2222,1,NoOp
same  => n,Answer()
same  => n,Dial(SIP/1133)


"Asterisk voice recording macros"
Отправлено Andrey , 14-Апр-17 08:46 
>[оверквотинг удален]
> same  => n,Dial(SIP/1133)
> Звонки проходят, голос пишется, все ок.
> Но стоит убрать макрос из правила
> exten => 2222,1,NoOp
> ;same  => n,Macro(recording,${CALLERID(num)},${CALLERID(name)},${EXTEN})
> same  => n,Dial(SIP/1133)
> То происходит следущее - при дозвоне на 2222 идет звонок на 1133,
> абонент берет трубку и..тишина, его голоса не слышно. Возвращаем макрос и
> голос абонента возвращается.
> Есть идеи как этот макрос может глобально аффектить сессии?

Смотрите синтаксис и порядок правил. Подобные проблемы воникают когда где-то пропущена строчка которая начинается с пункта "1" (exten => XXX,1,Application).

Для порядка попробуйте сделать для всего диалплана без всяких "same" и "n" в обработке вызовов:
exten => XXX,1,Application1
exten => XXX,2,Application2
и т.д.

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



"Asterisk voice recording macros"
Отправлено тень_pavel_simple , 14-Апр-17 20:35 
>[оверквотинг удален]
> same  => n,Dial(SIP/1133)
> Звонки проходят, голос пишется, все ок.
> Но стоит убрать макрос из правила
> exten => 2222,1,NoOp
> ;same  => n,Macro(recording,${CALLERID(num)},${CALLERID(name)},${EXTEN})
> same  => n,Dial(SIP/1133)
> То происходит следущее - при дозвоне на 2222 идет звонок на 1133,
> абонент берет трубку и..тишина, его голоса не слышно. Возвращаем макрос и
> голос абонента возвращается.
> Есть идеи как этот макрос может глобально аффектить сессии?

use ael, Luke