1

嗨,我正在从 Manager AMI 拨打电话,在我的 dialPlan 中,呼叫者将连接到 AGI。我想通过通道变量将变量 var 从 AMI 发送到 AGI

originateAction.setChannel("SIP/1000abc");
originateAction.setContext("outgoing-call");
originateAction.setExten("100"); 
originateAction.setVariable("var", "Say to the user that he sucks");

我尝试了所有可能的出站呼叫组合,但没有一个工作

[outgoing-call]
exten=>100,1,AGI(agi://127.0.0.1/hello.agi?user=${var})

[outgoing-call]
exten=>100,1,AGI(agi://127.0.0.1/hello.agi?var=${var})

[outgoing-call]
exten=>100,1,AGI(agi://127.0.0.1/hello.agi,${var})

通用人工智能

public void service(AgiRequest request, AgiChannel channel)
            throws AgiException
    {
        answer();
        System.out.println("Inside");
        String a=request.getParameter("var");
       // String b=request.getParameter("user");
        String c=channel.getVariable("var");
       // String d=channel.getVariable("user");
        System.out.println(a+"\n"+b+"\n"+c+"\n"+d+"\n");
        hangup();
     }

输出始终为空。

4

1 回答 1

1

在拨号计划中将参数传递给 AGI 的正确方法是:

exten=>_0.,n,AGI(CALLyourAGI,${VARIABLE})

在调用您的 AGI 之前,您可以在 CLI 中显示该变量是否已真正设置:

[outgoing-call]

exten=>100,1,NoOP(My Variable content ${var})
exten=>100,n,AGI(agi://127.0.0.1/hello.agi,${var})

不要忘记在 CLI 中设置详细

ast*CLI> 核心集详细 9999

拨打电话并密切关注

于 2013-07-16T19:19:15.217 回答