2017-05-18 3 views
1

Ich habe nächste AGI-Skript test_agi.py: Dieses Skript machen Prüfungzahl genannt wird, ist wirklich Nummer oder unter Verwendung von nicht HLR Anfrage (API)Wie setze ich AGI-Variable in Python?

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) 

Und haben Erweiterung in Stern:

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

Nach Aufruf sehe ich in Agi Debug:

[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 [[email protected]_check:1] Set("SIP/CC-000429e6", "fname=1495098137.288333") in new stack 
[May 18 09:02:17] VERBOSE[11945][C-00048437] pbx.c:  -- Executing [[email protected]_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 [[email protected]_check:3] NoOp("SIP/CC-000429e6", "") in new stack 

SO! Agi returned 0. Ich will make check - agi muss mir den Wert der Variable 'live_dst' zurückgeben, und ich möchte call wenn live_dst = Live und Hangup call wenn live_dst! = Live

Antwort

0

Verwenden Agi Debug, werden Sie sehen, was Sie Skript tun.

Die meisten likly asterisk haben nur keine Berechtigung zu Skript und Skript nichts tun.

AGI Debug Verwendung

asterisk -r 
agi set debug on 
+0

ermöglichen - AGI Script /root/test.py abgeschlossen, 0 und Informationen über Kanäle von agi Rückkehr Priorität usw. Ich habe machen alle Zulassungen zu diesem fille chmod 777 – SergeyMoroz

+0

nicht Datei. asterisk-Benutzer haben normalerweise keinen Zugriff auf root FOLDER. – arheops

Verwandte Themen