如何在Python中设置AGI变量?

2024-05-29 07:42:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下一个agi脚本测试_敏捷性: 这个脚本使检查被称为数字是真的数字或不使用HLR请求(API)

import urllib.request
import json
from pyagi.pyagi import AGI
agi = AGI()

dst = agi.env["agi_dnid"]

url = 'https://www.hlrlookup.com/api/hlr/?apikey=blabla&password=blabla&personalcache=5&msisdn=' + dst

req = urllib.request.Request(url)
r = urllib.request.urlopen(req).read()
cont = json.loads(r)


live = cont["error_text"]
agi.set_variable('live_dst',live)

并以星号表示扩展名:

^{pr2}$

在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

所以!Agi返回0。我要检查-agi必须返回变量的值 “live_dst”并且我想在live_dst=live时拨打电话,如果live\dst,我要挂断电话!=现场


Tags: importliveverboserequesturllibmaydstcc
2条回答

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

返回响应

使用agi调试,您将看到您的脚本做什么。在

最喜欢星号只是没有脚本和脚本什么都不做的权限。在

启用agi调试使用

asterisk -r
agi set debug on

相关问题 更多 >

    热门问题