передача значений из диалплана в сценарий Python Agi - PullRequest
0 голосов
/ 20 февраля 2019

Ниже приведен мой скрипт на python agi.Я пытаюсь передать значение из плана набора в сценарий agi и пытаюсь распечатать значение через сценарий.Все работает нормально, но значение не передается в сценарий.Пожалуйста, дайте мне знать, если что-то пошло не так.

#!/usr/bin/python

from asterisk.agi import *

agi = AGI()

agi.verbose("python agi started")

phone_exten = agi.get_variable('PHONE_EXTEN')
agi.verbose("phone number",phone_exten)

agi.set_variable('EXT_CALLERID', '1')

Код Dailplan:

[TEST]
exten => _X.,1,Goto(s,1)
exten => s,1,set(PHONE_EXTEN=0904)
exten => s,2,AGI(first.py,${PHONE_EXTEN})
exten => s,3,NoOp(${EXT_CALLERID})
exten => s,4,Hangup()

Вывод

Connected to Asterisk 14.6.0 currently running on ip-172-31-18-90 (pid = 2539)
Core debug is still 10.
[Feb 20 12:54:39]   == Using SIP RTP CoS mark 5
[Feb 20 12:54:39]     -- Executing [0904@TEST:1] Goto("SIP/0904-00000004", "s,1") in new stack
[Feb 20 12:54:39]     -- Goto (TEST,s,1)
[Feb 20 12:54:39]     -- Executing [s@TEST:1] Set("SIP/0904-00000004", "PHONE_EXTEN=0904") in new stack
[Feb 20 12:54:39]     -- Executing [s@TEST:2] AGI("SIP/0904-00000004", "first.py,0904") in new stack
[Feb 20 12:54:39]     -- Launched AGI Script /var/lib/asterisk/agi-bin/first.py
[Feb 20 12:54:39]  first.py,0904: python agi started
[Feb 20 12:54:39]     -- <SIP/0904-00000004>AGI Script first.py completed, returning 0
[Feb 20 12:54:39]     -- Executing [s@TEST:3] NoOp("SIP/0904-00000004", "1") in new stack
[Feb 20 12:54:39]     -- Executing [s@TEST:4] Hangup("SIP/0904-00000004", "") in new stack
[Feb 20 12:54:39]   == Spawn extension (TEST, s, 4) exited non-zero on 'SIP/0904-00000004'

1 Ответ

0 голосов
/ 22 февраля 2019

Этот вопрос ищет помощь в отладке, поэтому он не по теме.Но все в порядке.

Как правильно отладить сценарий AGI:

  1. Остановить службу звездочки

  2. Запустить службу звездочки в консоли с помощью asterisk -vvvgc.Это необходимо, чтобы увидеть канал ошибок сценария.

  3. в консоли звездочки включить отладку agi

    agi set debug on
    
  4. запустить сценарий

...