Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

спросил 2012-07-18 18:54:49 +0400

godlike Gravatar godlike flag of Ukraine

Мистика с AGI

Есть два срипта на питоне, один выполняется когда совершается входной звонок, один когда исходящий. Суть скриптов простая, астериск выполняя их передает им несколько переменных которые они пишут в БД. И это работает уже год... до недавного времени. Скрипт для исходящих звонков работает, а для входящих почему то нет, при этом астериск пишет

 -- 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 вываливается эксепшн.

Как так то, уже сломал голову, что ж это такое то может быть?

Мистика с AGI

Есть два срипта на питоне, один выполняется когда совершается входной звонок, один когда исходящий. Суть скриптов простая, астериск выполняя их передает им несколько переменных которые они пишут в БД. И это работает уже год... до недавного времени. Скрипт для исходящих звонков работает, а для входящих почему то нет, при этом астериск пишет

 -- 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

Мистика с AGI

Есть два срипта на питоне, один выполняется когда совершается входной звонок, один когда исходящий. Суть скриптов простая, астериск выполняя их передает им несколько переменных которые они пишут в БД. И это работает уже год... до недавного времени. Скрипт для исходящих звонков работает, а для входящих почему то нет, при этом астериск пишет

 -- 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))

Мистика с AGI

Есть два срипта на питоне, один выполняется когда совершается входной звонок, один когда исходящий. Суть скриптов простая, астериск выполняя их передает им несколько переменных которые они пишут в БД. И это работает уже год... до недавного времени. Скрипт для исходящих звонков работает, а для входящих почему то нет, при этом астериск пишет

 -- 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, почему такое может быть? Может это как то связано с моей проблемой?

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.