首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OriginateAction变量联接问题

OriginateAction变量联接问题
EN

Stack Overflow用户
提问于 2020-01-20 22:29:49
回答 2查看 253关注 0票数 0

我正在尝试使用C# AsterNET OriginateAction方法拨出带有星号AMI的呼叫。调用工作正常,但我在设置此操作的变量时遇到问题。我设置了2个变量,如下:

代码语言:javascript
复制
oc.SetVariables( new Dictionary<string, string>(){ { "SIPADD", "10001"}, { "VQWAITER", "10002" }});

但是当我尝试在dialplan中获取变量"SIPADD“时。我以"Local/10002|_VQWAITER=10001“的连接形式一次获得这两个变量

拨号方案:

代码语言:javascript
复制
exten => 999,1,NoOp((Caller ID IS: ${CALLERID(num)}))
 same =>      n,Answer()
 same =>      n,NoOp("Callback Agent Address: "${SIPADD})
 same =>      n,Dial(${SIPADD})
 same =>      n,Hangup()

以下是上述拨号方案的CLI跟踪:

有没有人能告诉我这里有什么问题?我想把这些变量分开,而不是像这样连接。

现在,作为一种变通方法,我通过在dialplan中执行以下setp来拆分连接的字符串:

代码语言:javascript
复制
 same =>      n,NoOp("Callback Agent Address: "${SIPADD})
 same =>      n,Set(localSIPAdd=${CUT(SIPADD,|,1)})
 same =>      n,Set(waiter=${CUT(SIPADD,|,2)})
 same =>      n,NoOp("localSIP: "${localSIPAdd})
 same =>      n,NoOp("waiter: "${waiter})
 same =>      n,Set(CALLERID(num)=waiter)

上述更改的CLI:

EN

回答 2

Stack Overflow用户

发布于 2020-01-21 14:54:51

您可能正在使用Java库。根据它的文档,有两种方法可用于变量。SetVariableSetVariables。这两个变量接受不同类型的输入参数,即分别为String和Map。

我不是Java开发人员,但我认为像下面这样更新您的代码可能会解决您的问题。

代码语言:javascript
复制
HashMap<String, String> map = new HashMap<String, String>();

map.put("SIPADD","10002");
map.put("VQWAITER","10003");

oc.SetVariables(map);
票数 0
EN

Stack Overflow用户

发布于 2020-01-28 22:40:24

当使用比v13更新的Asterisk版本时,这是AsterNET v1.3.0中的一个小错误。详情请参见AsterNET issue #220

当前的解决方法是在连接到Asterisk服务器后手动设置连接的VAR_DELIMITER属性。

代码语言:javascript
复制
managerConnection.VAR_DELIMITER = new char[] { ',' };
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59825353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档