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

Не получается запустить python скрипт из System

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

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

Ответить
natrox
Сообщения: 37
Зарегистрирован: 20 янв 2014, 04:58
Откуда: Иркутская область, г. Усть-Илимск
Контактная информация:

Не получается запустить python скрипт из System

Сообщение natrox »

Здравствуйте,

С помощью call файла делаю вызов на внутренний SIP номер:

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

Channel: SIP/117
Callerid: TEST CALL
RetryTime: 20
MaxRetries: 1
WaitTime: 30
Context: from-obzvon
Extension: s
Кусок диалплана:

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

[from-obzvon]
exten => s,1,System(/usr/bin/python3.2 /home/test.py)
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n,Hangup
код скрипта на питоне для примера:

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

#!/usr/bin/env python
# -*- coding: utf-8 -*-

text = 'Привет мир!'

out = open('/home/out.txt','w')
out.write(text)
out.close()
В CLI вижу следующее:

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

asterisk*CLI>
    -- Executing [s@from-obzvon:1] System("SIP/117-00000fe1", "/usr/bin/python3.2 /home/test.py") in new stack
    -- Executing [s@from-obzvon:2] Answer("SIP/117-00000fe1", "") in new stack
    -- Executing [s@from-obzvon:3] Wait("SIP/117-00000fe1", "1") in new stack
    -- Executing [s@from-obzvon:4] Hangup("SIP/117-00000fe1", "") in new stack
  == Spawn extension (from-obzvon, s, 4) exited non-zero on 'SIP/117-00000fe1'
[May 11 15:28:49] NOTICE[5608]: pbx_spool.c:366 attempt_thread: Call completed to SIP/117
Скрипт не выполняется. Через консоль в системе, /usr/bin/python3.2 /home/test.py выполняется без проблем. Я как понимаю проблема в том что прав не хватает? На файлы права полные(0777) дал, не помогло. Подскажите как найти причину проблемы? Не понимаю что не так делаю. За ранее спасибо
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Не получается запустить python скрипт из System

Сообщение ded »

Не надо через System.
Положите его в директорию agi-bin где лежат у Астериска исполняемые скрипты и вызывайте через AGI

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

*CLI> core show application Agi

  -= Info about application 'AGI' =- 

[Synopsis]
Executes an AGI compliant application. 

[Description]
Executes an Asterisk Gateway Interface compliant program on a channel. AGI
allows Asterisk to launch external programs written in any language to control
a telephony channel, play audio, read DTMF digits, etc. by communicating with
the AGI protocol on *stdin* and *stdout*. As of '1.6.0', this channel will
not stop dialplan execution on hangup inside of this application. Dialplan
execution will continue normally, even upon hangup until the AGI application
signals a desire to stop (either by exiting or, in the case of a net script,
by closing the connection). A locally executed AGI script will receive SIGHUP
on hangup from the channel except when using DeadAGI. A fast AGI server will
correspondingly receive a HANGUP inline with the command dialog. Both of theses
signals may be disabled by setting the ${AGISIGHUP} channel variable to 'no'
before executing the AGI application.
Use the CLI command 'agi show commands' to list available agi commands.
This application sets the following channel variable upon completion:
${AGISTATUS}: The status of the attempt to the run the AGI script text string,
one of:
    SUCCESS
    FAILURE
    NOTFOUND
    HANGUP

[Syntax]
AGI(command[,arg1[,arg2[,...]]])
Аватара пользователя
Wapo
Сообщения: 795
Зарегистрирован: 02 мар 2011, 17:53

Re: Не получается запустить python скрипт из System

Сообщение Wapo »

Запуск идет из астера - а сам-то астер от имени кого запущен. Из консоли-то понятно, что рут выполняет.
И еще - проверьте наличие ПОЛНЫХ путей к скриптам, права на сами папки где что лежит.
natrox
Сообщения: 37
Зарегистрирован: 20 янв 2014, 04:58
Откуда: Иркутская область, г. Усть-Илимск
Контактная информация:

Re: Не получается запустить python скрипт из System

Сообщение natrox »

Спасибо. Через AGI заработало, вот только не понятно почему через System не получилось, ну да ладно.
natrox
Сообщения: 37
Зарегистрирован: 20 янв 2014, 04:58
Откуда: Иркутская область, г. Усть-Илимск
Контактная информация:

Re: Не получается запустить python скрипт из System

Сообщение natrox »

Wapo писал(а):Запуск идет из астера - а сам-то астер от имени кого запущен. Из консоли-то понятно, что рут выполняет.
И еще - проверьте наличие ПОЛНЫХ путей к скриптам, права на сами папки где что лежит.
Я все понял. Права на исполнение нужно было давать пользователю от которого астер запущен. Тема закрыта. Всем спасибо
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH