VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

MixMonitor + Queue + AGI

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Ответить
Dampire
Сообщения: 26
Зарегистрирован: 29 мар 2012, 13:36

MixMonitor + Queue + AGI

Сообщение Dampire »

Доброго.
Есть очередь

Код: Выделить всё

monitor-format=wav
monitor-type=MixMonitor
Есть вызов

Код: Выделить всё

exten => 100,1,Answer()
exten => 100,2,Set(MONITORFILENAME=${CDR(uniqueid)})
exten => 100,3,Queue(queue,tc)
exten => 100,4,Hangup()

exten => h,1,AGI("upload_monitor.py")
Есть код (python), который загружает файл на сайт

Код: Выделить всё

url = 'http://somesite.foo/upload.php'
files = {'file': ('%s' % fname, open('/var/spool/asterisk/monitor/%s' % fname, 'rb'))}
r = requests.post(url, files=files)
Код в консольном виде загружает хорошо, в виде AGI - файл загружается битый(т.е. вообще не проигрывается, длина не соответствует). Предположительная причина - преждевременный выход из скрипта, т.к. скрипт излишне шустро отчитывается в консоли (return 0). time.sleep(5) не помогает.
Samael28
Сообщения: 1057
Зарегистрирован: 08 янв 2011, 18:32
Откуда: Киев
Контактная информация:

Re: MixMonitor + Queue + AGI

Сообщение Samael28 »

Есть команда StopMixMonitor.
Ее желательно вызывать до выгрузки файла.
Мой профайл на Upwork
andrew55555
Сообщения: 7
Зарегистрирован: 14 фев 2014, 17:55

Re: MixMonitor + Queue + AGI

Сообщение andrew55555 »

Попробуйте через MONITOR_EXEC. Астериск выполняет любой скрипт, по идее, уже после закрытия файла. Описание есть в queues.conf.sample
Dampire
Сообщения: 26
Зарегистрирован: 29 мар 2012, 13:36

Re: MixMonitor + Queue + AGI

Сообщение Dampire »

2Samael28
Об этом я не подумал. Скорее всего в этом и заключается причина.
andrew55555
Скрипт отработал как надо.

Всем спасибо. В итоге буду использовать monitor_exec просто по причине того, что так меньше строчек в скрипте :)
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH