使用 ami 外呼时,在 freeiirs 录音时会找不到 accountcode 变量解决办法
使用 freeiris 对 asterisk 做包装。
?
今天使用 Asterisk 的 AMI 外呼时,发现录音不成功,
?
在 /freeiris2/agimod/rount.dynamic 中发现
?
?#主叫自动录音检测
??? $AGI->exec('AGI','agi://127.0.0.1/sysautomon?type=caller&number='.$accountcode);
?
中的变量 accountcode? 变量为空
?
这个 accountcode 是 CDR 的变量,
?
于是在
?
originateToExtensionAsync(java.lang.String?channel, java.lang.String?context, java.lang.String?exten, int?priority, long?timeout, CallerId?callerId, java.util.Map<java.lang.String,java.lang.String>?variables, OriginateCallback?cb)
中的 callback 中的 onSuccess? 方法执行的时候,进行设置
?
?
@Override
????public void onSuccess(AsteriskChannel channel) {
?????channel.setVariable("CDR(accountcode)", agent);
?????System.out.println("onSuccess..........");
????}
?
?
将 Channel 的变量修改一下即可。
?
问题解决。。
?
?
?
?
==============================================================