Доброй ночи, коллеги. Прошу помощи :)
Нужно сбрасывать записи вызовов в телегу. Написан скрипт, который отправляет файлы.
Есть два варианта использования - когда входящий вызов идет на абонента Астериска - всё ок - запись уходит.
А вот когда входящий вызов уходит за пределы астериска - получается беда - на телефоне файл не прослушивается, а прослушивается только на компе в Телеге.
запись идет следующим образом:
[support]
exten => s,1,Noop()
.....
same => n,Dial(SIP/mobile-trunk/88888888888888,30,tmU(sub-record-after-answer,s,1))
далее по отбою:
exten => h,1,Noop()
same => n,StopMixMonitor()
same => n,Agi("/opt/
telegram.py",${CHAT_ID},${DIALSTATUS},${AN},${BN},${CALLFILENAME}.wav)
same => n,Hangup()
в [sub-record-after-answer]
exten => s,1,NoOp()
exten => s,n,MixMonitor(${CALLFILENAME}.wav,b)
exten => s,n,return
Т.е. вроде всё правильно.
А вот в логах видно, что файл скриптом отправляется ДО момента завершения записи, что и приводит к тому, что в Телеге на мобиле его прослушать не получается. Логи:
-- SIP/mobile-trunk-00000021 Internal Gosub(sub-record-after-answer,s,1(s,1)) start
-- Executing [s@sub-record-after-answer:1] NoOp("SIP/mobile-trunk-00000021", "") in new stack
-- Executing [s@sub-record-after-answer:2] MixMonitor("SIP/mobile-trunk-00000021", "/var/spool/asterisk/callrecords/777/20211117/20211117020453_888_777.wav,b") in new stack
-- Executing [s@sub-record-after-answer:3] Return("SIP/mobile-trunk-00000021", "") in new stack
== Spawn extension (mobile_in, , 1) exited non-zero on 'SIP/mobile-trunk-00000021'
-- SIP/mobile-trunk-00000021 Internal Gosub(sub-record-after-answer,s,1(s,1)) complete GOSUB_RETVAL=
-- Stopped music on hold on SIP/Eltex-00000020
== Begin MixMonitor Recording SIP/mobile-trunk-00000021
-- Executing [h@support:1] NoOp("SIP/E-00000020", "") in new stack
-- Executing [h@support:2] Set("SIP/E-00000020", "CHAT_ID=.....") in new stack
-- Executing [h@support:3] NoOp("SIP/E-00000020", "stopped_record-support") in new stack
-- Executing [h@support:4] StopMixMonitor("SIP/E-00000020", "") in new stack
-- Executing [h@support:5] AGI("SIP/E-00000020", ""/opt/
telegram.py",31042115,ANSWER,888,777,/var/spool/asterisk/callrecords/777/20211117/20211117020453_888_777.wav") in new stack
-- Launched AGI Script /opt/
telegram.py -- <SIP/E-00000020>AGI Script /opt/
telegram.py completed, returning 0
-- Executing [h@support:6] Hangup("SIP/E-00000020", "") in new stack
== Spawn extension (support, h, 6) exited non-zero on 'SIP/E-00000020'
== MixMonitor close filestream (mixed)
== End MixMonitor Recording SIP/mobile-trunk-00000021
Как-то можно завершить MixMonitor до отправки файла скриптом?
Заранее благодарен.
PS Если потом скриптом из командной строки отправить файл повторно - телефон его распознает, т.е. проблема из-за незавершенного файла записи :(