Не выполняется python-скрипт - File does not exist
Добавлено: 07 авг 2023, 17:08
Доброго дня.
Пытаюсь запустить озвучку текста.
Пытаюсь поставить AGI или EAGI - получаю ошибку:
То есть он не может создать файл и соответственно, проиграть его.
Если я просто в командной строке выполняю /home/asterisk/speech/Robovoice.py 9999_1691415533 Компания приветствует Вас, Иван Иванов - скрипт срабатывает, но берет только слово компания
То есть, чтобы записать всю фразу, запрос должен выглядеть так: /home/asterisk/speech/Robovoice.py 9999_1691415533 "Компания приветствует Вас, Иван Иванов"
Сам скрипт в каталоге есть:
[root@freepbx speech]# ls -la
total 8
drwxr-xr-x 2 755 asterisk 26 Aug 7 15:57 .
drwxr-xr-x. 16 asterisk asterisk 4096 Aug 7 15:56 ..
-rwxrwxr-x 1 asterisk asterisk 591 Aug 7 15:54 Robovoice.py
Если запускаю его руками - все отрабатывает.
Если запускаю, как пишется в логе ('/home/asterisk/speech/Robovoice.py 1514_1691416909 Компания приветствует Вас, Иван Иванов':), с апострофами, ожидаемо получаю No such file or directory
Подскажите, пожалуйста, как решить этот вопрос?
Пытаюсь запустить озвучку текста.
Код: Выделить всё
[hello]
exten = s,1,Answer()
same = n,Wait(1)
same = n,Set(RHV_FILE=${CALLERID(num)}_${EPOCH})
same = n,Set(RHV_TEXT=Компания приветствует Вас, ${CALLERID(Name)})
same = n,AGI(/home/asterisk/speech/Robovoice.py ${RHV_FILE} ${RHV_TEXT})
same = n,Playback(/var/lib/asterisk/sounds/ru/rhv_playback/${RHV_FILE}&silence/1)
same = n,System(rm -f /var/lib/asterisk/sounds/ru/rhv_playback/${RHV_FILE}.wav)
same = n,System(rm -f /var/lib/asterisk/sounds/ru/rhv_playback/${RHV_FILE}_t.wav)
exten = s,n,Return
Код: Выделить всё
Executing [dest-2@customdests:1] NoOp("SIP/9999-00000012", "Entering Custom Destination Greetings by Name") in new stack
-- Executing [dest-2@customdests:2] Gosub("SIP/9999-00000012", "hello,s,1()") in new stack
-- Executing [s@civility-hi:1] Answer("SIP/9999-00000012", "") in new stack
-- Executing [s@civility-hi:2] Wait("SIP/9999-00000012", "1") in new stack
-- Executing [s@civility-hi:3] Set("SIP/9999-00000012", "RHV_FILE=9999_1691415275") in new stack
-- Executing [s@civility-hi:4] Set("SIP/1514-00000014", "RHV_TEXT="Компания приветствует Вас, Иван Иванов"") in new stack
-- Executing [s@civility-hi:5] AGI("SIP/1514-00000014", "/home/asterisk/speech/Robovoice.py 9999_1691415533 "Компания приветствует Вас, Иван Иванов"") in new stack
[2023-08-07 16:38:53] WARNING[23382][C-00000015]: res_agi.c:2218 launch_script: Failed to execute '/home/asterisk/speech/Robovoice.py 9999_1691415533 Компания приветствует Вас, Иван Иванов': File does not exist.
-- Executing [s@civility-hi:6] Playback("SIP/1514-00000014", "/var/lib/asterisk/sounds/ru/rhv_playback/1514_1691415533&silence/1") in new stack
[2023-08-07 16:34:35] WARNING[22369][C-00000013]: file.c:824 ast_openstream_full: File /var/lib/asterisk/sounds/ru/rhv_playback/9999_1691415275 does not exist in any format
[2023-08-07 16:34:35] WARNING[22369][C-00000013]: file.c:1303 ast_streamfile: Unable to open /var/lib/asterisk/sounds/ru/rhv_playback/9999_1691415275 (format (ulaw)): No such file or directory
[2023-08-07 16:34:35] WARNING[22369][C-00000013]: app_playback.c:512 playback_exec: Playback failed on SIP/1514-00000012 for /var/lib/asterisk/sounds/ru/rhv_playback/9999_1691415275&silence/1
Если я просто в командной строке выполняю /home/asterisk/speech/Robovoice.py 9999_1691415533 Компания приветствует Вас, Иван Иванов - скрипт срабатывает, но берет только слово компания
То есть, чтобы записать всю фразу, запрос должен выглядеть так: /home/asterisk/speech/Robovoice.py 9999_1691415533 "Компания приветствует Вас, Иван Иванов"
Сам скрипт в каталоге есть:
[root@freepbx speech]# ls -la
total 8
drwxr-xr-x 2 755 asterisk 26 Aug 7 15:57 .
drwxr-xr-x. 16 asterisk asterisk 4096 Aug 7 15:56 ..
-rwxrwxr-x 1 asterisk asterisk 591 Aug 7 15:54 Robovoice.py
Если запускаю его руками - все отрабатывает.
Если запускаю, как пишется в логе ('/home/asterisk/speech/Robovoice.py 1514_1691416909 Компания приветствует Вас, Иван Иванов':), с апострофами, ожидаемо получаю No such file or directory
Подскажите, пожалуйста, как решить этот вопрос?