花草:
我带着一个问题来到这里,到目前为止,我还无法独自解决这个问题。
我希望能够将数据从数组传递到星号PBX的拨号计划中的AGI脚本,其格式如下:
exten => some_exten,priority,AGI(agi:hostname:port/agi_script.agi?param1=value1¶m2=value2...¶mN=valueN)但是其中一个参数必须像CGI脚本中的URL参数一样接收数组数据,如下所示:
exten => some_exten,priority,AGI(agi:hostname:port/agi_script.agi?param_array=value1,value2,value3...,valueN)我知道AGI脚本可以接收数组作为参数,但是URL形式的AGI脚本的可用文档并没有提到如何将数组数据作为脚本参数来接收;这就是我在这里发布这个问题的原因。
我试验了(结果不成功)以下列方式传递数据:
但到目前为止,我只成功地以以下方式传递了数组数据:
exten => some_exten,priority,AGI(agi:hostname:port/agi_script.agi?param_array=array_value1¶m_array=array_value2...¶m_array=array_valueN)据我所读,这不是将参数传递给URL的正确方式,这是我用来将数据传递给我的AGI脚本的方式。
如果有人能在这件事上给我一个启发,我会非常感激的,因为我真的不想像我一直以来所做的那样,单独传递每个数组项。
发布于 2015-03-27 07:05:17
我会在后面用引号和逗号分隔( param_array )
exten => some_exten,priority,AGI(agi:hostname:port/agi_script.agi?param_array="a=1,b=2,c=3,d=4") 发布于 2015-09-16 11:20:38
(星号):
exten => s,n,Read(ZIPCODE,,8,3) ;ZIPCODE is my variable
exten => s,n,AGI(query-database.php|${ZIPCODE})PHP查询中的-database.php:
$zipcode = $argv[1]; Get the value of first var.发布于 2019-04-16 02:52:07
不是完全正确的答案,也是延迟,但是我使用agi脚本使用python发送和接收变量的方式如下:
上下文:
[agi_demo]
exten => s,1,NoOp()
exten => s,n,AGI(agi://127.0.0.1:4573/demo2,1,2,3,4,5) ; send args 1 2 3 4 5 to demo2
exten => s,n,Verbose(OK = ${ok}) ; receive variable 'ok' from agi
exten => s,n,Hangup()调试日志:
-- Executing [s@agi_demo:2] AGI("SIP/trunk-00000016", "agi://127.0.0.1:4573/demo2,1,2,3,4,5") in new stack
-- <SIP/trunk-00000016> Playing 'agi_demo/i_just_called.slin' (escape_digits=12)
-- <SIP/trunk-00000016>AGI Script agi://127.0.0.1:4573/demo2 completed, returning 0
-- Executing [s@agi_demo:3] Verbose("SIP/trunk-00000016", "OK = AGI Rocks") in new stack
OK = AGI Ricks
-- Executing [s@agi_demo:4] Hangup("SIP/trunk-00000016", "") in new stack备注:
https://stackoverflow.com/questions/29289743
复制相似问题