Есть два срипта на питоне, один выполняется когда совершается входной звонок, один когда исходящий.
Суть скриптов простая, астериск выполняя их передает им несколько переменных которые они пишут в БД. И это работает уже год... до недавного времени. Скрипт для исходящих звонков работает, а для входящих почему то нет, при этом астериск пишет
-- Executing [s@IVR-ru:10] AGI("SIP/XX.XX.XX.XX-00000004", "incoming.py,1342622667.4,93XXXXXXX,SIP/XX.XX.XX.XX-00000004,400,'093XXXXXXX'") in new stack
-- Launched AGI Script /etc/asterisk/agi/incoming.py
-- <SIP/XX.XX.XX.XX-00000004>AGI Script incoming.py completed, returning 0
то есть скрипт типа выполнился нормально и все ок, но БД при этом пустая.
я пытался в него написать даже 1/0 все равно completed, returning 0 При этом если вызвать его вручную в консоли и передать теже параметры то все ок, БД наполняется, а в случае с 1/0 вываливается эксепшн.
Как так то, уже сломал голову, что ж это такое то может быть?
PS AGI DEBUG
-- Executing [s@IVR-ru:10] AGI("SIP/XX.XX.XX.XX-00000012", "incoming.py,1342624313.18,93XXXXXXX,
SIP/XX.XX.XX.XX-00000012,400,'093XXXXXXX'") in new stack
-- Launched AGI Script /etc/asterisk/agi/incoming.py
<SIP/212.58.166.46-00000012>AGI Tx >> agi_request: incoming.py
<SIP/212.58.166.46-00000012>AGI Tx >> agi_channel: SIP/XX.XX.XX.XX-00000012
<SIP/212.58.166.46-00000012>AGI Tx >> agi_language: en
<SIP/212.58.166.46-00000012>AGI Tx >> agi_type: SIP
<SIP/212.58.166.46-00000012>AGI Tx >> agi_uniqueid: 1342624313.18
<SIP/212.58.166.46-00000012>AGI Tx >> agi_version: 1.8.8.0~rc4-1digium0+1~squeeze
<SIP/212.58.166.46-00000012>AGI Tx >> agi_callerid: 93XXXXXXX
<SIP/212.58.166.46-00000012>AGI Tx >> agi_calleridname: admin
<SIP/212.58.166.46-00000012>AGI Tx >> agi_callingpres: 0
<SIP/212.58.166.46-00000012>AGI Tx >> agi_callingani2: 0
<SIP/212.58.166.46-00000012>AGI Tx >> agi_callington: 0
<SIP/212.58.166.46-00000012>AGI Tx >> agi_callingtns: 0
<SIP/212.58.166.46-00000012>AGI Tx >> agi_dnid: 093XXXXXXX
<SIP/212.58.166.46-00000012>AGI Tx >> agi_rdnis: unknown
<SIP/212.58.166.46-00000012>AGI Tx >> agi_context: IVR-ru
<SIP/212.58.166.46-00000012>AGI Tx >> agi_extension: s
<SIP/212.58.166.46-00000012>AGI Tx >> agi_priority: 10
<SIP/212.58.166.46-00000012>AGI Tx >> agi_enhanced: 0.0
<SIP/212.58.166.46-00000012>AGI Tx >> agi_accountcode:
<SIP/212.58.166.46-00000012>AGI Tx >> agi_threadid: 140445567637248
<SIP/212.58.166.46-00000012>AGI Tx >> agi_arg_1: 1342624313.18
<SIP/212.58.166.46-00000012>AGI Tx >> agi_arg_2: 93XXXXXXX
<SIP/212.58.166.46-00000012>AGI Tx >> agi_arg_3: SIP/XX.XX.XX.XX-00000012
<SIP/212.58.166.46-00000012>AGI Tx >> agi_arg_4: 400
<SIP/212.58.166.46-00000012>AGI Tx >> agi_arg_5: '093XXXXXXX'
<SIP/212.58.166.46-00000012>AGI Tx >>
-- <SIP/XX.XX.XX.XX-00000012>AGI Script incoming.py completed, returning 0
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from time import time
import config
import dbase
try: uniqueid = str(sys.argv[1])
except: uniqueid = False
try: callerid = str(sys.argv[2])
except: callerid = False
try: channel = str(sys.argv[3])
except: channel = False
try: did = str(sys.argv[4])
except: did = False
try: provider_number = str(sys.argv[5])
except: provider_number = False
time_start = time()
dbase.query('INSERT INTO `aster_calls` (`callerid`, `channel`, `did`, `uniqueid`, `time_start`, `provider_number`, `type`) VALUES(\'%s\',\'%s\',\'%s\',\'%s\',\'%f\',\'%s\',\'incoming\')' % (callerid, channel, did, uniqueid, time_start, provider_number))
Происходит вообще что то непонятное, добавил скрипт test.py перезагрузил астериск но при выполнении диалплана вываливается
Failed to execute '/etc/asterisk/agi/test.py': No such file or directory
хотя этот файл есть и у него права 777, почему такое может быть? Может это как то связано с моей проблемой?
а руками запускал из под какого юзера ?
alexcr ( 2012-07-18 19:20:32 +0400 )редактироватьиз под рута, я думал об этом, но срипт для исходящих звонков имеет такие же права и владельца, и я думаю если бы не хватало прав то аги ругался бы в лог на это
godlike ( 2012-07-18 19:32:52 +0400 )редактировать