我们正在开发 SS7 CAMEL 应用程序。该应用程序基于jboss 5.10GA 以及 Mobicents/Restcomm 的 jss7 和 Restcomm 的 CAP 资源适配器。
在我们的 Sbb 中,我们从交换机接收 InitialDP 消息和分隔符。收到分隔符后,我们尝试向交换机发送连接消息。
不幸的是,当我们在 onDelimiter 方法中收到的对话框上调用 .send() 方法时,没有发送要切换的消息,我们在 jboss 日志中看到的是:
TC-CONTINUE:ID 没有对话/事务:67793592
public void onDelimiter(DialogDelimiter delimiter, ActivityContextInterface aci)
{
try
{
CAPDialogCircuitSwitchedCall dialog = (CAPDialogCircuitSwitchedCall) delimiter.getCAPDialog();
dialog.addRequestReportBCSMEventRequest(bcsmevents, extensions);
dialog.addCallInformationReportRequest(requestsTypes, null, null);
dialog.addConnectRequest(new DestinationRoutingAddressImpl(new ArrayList<CalledPartyNumberCap>(Arrays.asList(new CalledPartyNumberCapImpl(new CalledPartyNumberImpl("48602465380".getBytes()))))), null, new OriginalCalledNumberCapImpl(new OriginalCalledNumberImpl(cdr.getBNumber().substring(0,10).getBytes())), null, new CarrierImpl("9191".getBytes()), null, null, null, null, null, null, null, null, false, false, false, null, false);
dialog.addContinueRequest();
dialog.send();
(...)
}
}
如果这是我们的 sccp 规则的问题,那么以下地址的正确 sccp 设置应该是什么:
开关: 电脑:6801, 社会安全号码:146, GT:4794733271, 人工智能:18
我们的服务器: 电脑:5100, 社会安全号码:146, GT:442080000100, 人工智能:18
最佳答案
此消息“TC-CONTINUE:没有 ID 为 67793592 的对话/事务”意味着 TC-CONTINUE 原语来到 TCAP 堆栈,但没有这样的本地对话。没有进行任何处理,也没有调用 onDelimiter() 方法。
最可能的原因是 TCAP 对话框已超时。你需要 : - 要么增加dialogTimeout堆栈选项(很多时候因为是CAP) - 或在“CAPDialogListener.onDialogTimeout(CAPDialog capDialog)”内调用 capDialog.keepAlive(); (这样你需要检查对话框是否保存时间过长)
关于java - JSS7 - TC-继续 : No dialog/transaction for id:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36469655/