LINUX.ORG.RU

Asterisk + voice_recording macros

 ,


0

1

Привет

Есть астериск 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, абонент берет трубку и..тишина, его голоса не слышно. Возвращаем макрос и голос абонента возвращается.

Есть идеи что я делаю не так?



Последнее исправление: ShodanII (всего исправлений: 5)

В первую очередь я бы предположил, что это совпадение. На самом деле пропадание голоса зависит от чего-то иного.

рекомендую проверить еще 10-15 раз с макросом и без.

Либо на самом деле диалплан приведен не полностью и есть еще какие-нибудь операции.

Кстати рекомендую включить дебаг и посмотреть нет ли проблем с кодеками на звонке и есть ли разница в логе (кодеки) между звонками с миксмонитором и без него.

zgen ★★★★★
()

Очень похоже на не рабочий reinvite
Когда запись подключена, т.е. MixMonitor посадил на канал хук чтения аудио фреймов, астериск сообразил это, и записал себе что медаипоток нужен.
Дальше, когда нету записи, когда Dial(SIP/xxx) драйвер SIP-па вкурил что вот 2 SIP-а, и в принципе им можно намекнуть что хорошо бы чтобы они между собой голосом обменивались и не грузили астер, ибо голос ему не нужен. Вот они пытаются договорится, но в связи с существованием какого-либо фаервола/не открытых портов, звук просто не проходит между концами.
Таким образом: есть запись - звук валит через астер без проблем, все всё слыгат. Нету записи, астер умывает руки, абоненты теряют медиа.
В sip.conf есть опция типа allow reinvite которая собственно и дает разрешение SIP звонку перенастроить канал.
В общем, садитесь на tcpdump смотрите ходит ли звук через астериск, и в каком случае. И астерисковский лог сип-а тоже может помочь на самом деле.

FeyFre ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.