如何在Python中设置AGI变量?

如何在Python中设置AGI变量?,python,asterisk,asteriskami,agi,Python,Asterisk,Asteriskami,Agi,我有下一个agi脚本测试\u agi.py: 此脚本使用HLR请求(API)检查是否称为“数字是否为真正的数字” 扩展名为星号: [HLR_check] exten => _XXXXXX.,1,Set(fname=${UNIQUEID}) exten => _XXXXXX.,2,AGI(/root/hlr/test_agi.py) exten => _XXXXXX.,3,NoOp(${live_dst}) exten => _XXXXXX.,4,GoToIf($["${l

我有下一个agi脚本测试\u agi.py: 此脚本使用HLR请求(API)检查是否称为“数字是否为真正的数字”

扩展名为星号:

[HLR_check]
exten => _XXXXXX.,1,Set(fname=${UNIQUEID})
exten => _XXXXXX.,2,AGI(/root/hlr/test_agi.py)
exten => _XXXXXX.,3,NoOp(${live_dst})
exten => _XXXXXX.,4,GoToIf($["${live_dst}" != "Live"]?6:5)
exten => _XXXXXX.,5,GoTo(agiexten,${EXTEN},1)
exten => _XXXXXX.,6,Hangup(42)
same => n,Hangup(42)
在agi调试中看到的调用后:

[May 18 09:02:17] VERBOSE[8194][C-00048437] netsock2.c:   == Using SIP RTP CoS mark 5
[May 18 09:02:17] VERBOSE[11945][C-00048437] pbx.c:     -- Executing [380633958833@HLR_check:1] Set("SIP/CC-000429e6", "fname=1495098137.288333") in new stack
[May 18 09:02:17] VERBOSE[11945][C-00048437] pbx.c:     -- Executing [380633958833@HLR_check:2] AGI("SIP/CC-000429e6", "/root/hlr/test_agi.py") in new stack
[May 18 09:02:17] VERBOSE[11945][C-00048437] res_agi.c:     -- Launched AGI Script /root/hlr/test_agi.py
[May 18 09:02:17] VERBOSE[11945][C-00048437] res_agi.c:     -- <SIP/CC-000429e6>AGI Script /root/hlr/test_agi.py completed, returning 0
[May 18 09:02:17] VERBOSE[11945][C-00048437] pbx.c:     -- Executing [380633958833@HLR_check:3] NoOp("SIP/CC-000429e6", "") in new stack
[May 18 09:02:17]详细[8194][C-00048437]netsock2.C:==使用SIP RTP CoS标记5
[May 18 09:02:17]详细[11945][C-00048437]pbx.C:--正在执行[380633958833@HLR_check:1]在新堆栈中设置(“SIP/CC-000429e6”,“fname=1495098137.288333”)
[May 18 09:02:17]详细[11945][C-00048437]pbx.C:--正在执行[380633958833@HLR_check:2]新堆栈中的AGI(“SIP/CC-000429e6”,“/root/hlr/test_AGI.py”)
[May 18 09:02:17]详细[11945][C-00048437]res_agi.C:--已启动agi脚本/root/hlr/test_agi.py
[May 18 09:02:17]VERBOSE[11945][C-00048437]res_agi.C:--agi Script/root/hlr/test_agi.py已完成,返回0
[May 18 09:02:17]详细[11945][C-00048437]pbx.C:--正在执行[380633958833@HLR_check:3]新堆栈中的NoOp(“SIP/CC-000429e6”,“”)
所以!Agi返回0。我要进行检查-agi必须返回变量的值
“live_dst”,如果live_dst=live,我想打电话,如果live_dst,我想挂断电话=使用agi调试,您将看到脚本的功能

最有可能的是星号只是没有脚本权限,脚本什么也不做

要启用agi调试,请使用

asterisk -r
agi set debug on

您将获得0,因为您没有从脚本返回任何结果 您需要像这样将一个对象返回到拨号计划


返回响应--AGI脚本/root/test.py已完成,从AGI返回0和有关通道、优先级等的信息。我已对此fille chmod 777not文件进行了所有许可。星号用户通常无权访问根文件夹。
asterisk -r
agi set debug on