Java JSS7-TC-CONTINUE:没有id的对话框/事务:

Java JSS7-TC-CONTINUE:没有id的对话框/事务:,java,apache-camel,restcomm,mobicents,ss7,Java,Apache Camel,Restcomm,Mobicents,Ss7,我们正在开发SS7骆驼应用程序。该应用程序基于jboss 5.10GA 以及Mobicents/Restcomm的jss7和Restcomm的CAP资源适配器 在Sbb中,我们从交换机接收InitialDP消息和分隔符。收到分隔符后,我们尝试向交换机发送connect消息 不幸的是,当我们在onDelimiter方法中收到的对话框上调用.send()方法时,没有发送要切换的消息,我们在jboss日志中看到的是: TC-CONTINUE:没有id为67793592的对话框/事务 publi

我们正在开发SS7骆驼应用程序。该应用程序基于jboss 5.10GA 以及Mobicents/Restcomm的jss7和Restcomm的CAP资源适配器

在Sbb中,我们从交换机接收InitialDP消息和分隔符。收到分隔符后,我们尝试向交换机发送connect消息

不幸的是,当我们在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();
            (...)
         }
     }
public void onDelimiter(DialogDelimiter delimiter,activitycontenterface aci)
{
尝试
{
CAPDialogCircuitSwitchedCall dialog=(CAPDialogCircuitSwitchedCall)分隔符。getCAPDialog();
addRequestReportBCSMEventRequest(bcsmevents,extensions);
addCallInformationReportRequest(requestsTypes,null,null);
dialog.addConnectRequest(新的DestinationRoutingAddressImpl)(新的ArrayList(Arrays.asList)(新的CalledPartyNumberCapImpl(新的CalledPartyNumberImpl)(“48602465380.getBytes()”)))),null,新的OriginalCalledNumberCapImpl(新的OriginalCalledNumberImpl(cdr.getBNumber().子字符串(0,10.getBytes())),null,新的CarrierImpl(“9191.getBytes()),null,null,null,null,null,null,null,null,null,false,false,false,null,false);
dialog.addContinueRequest();
dialog.send();
(...)
}
}
如果我们的sccp规则存在问题,那么以下地址的正确sccp设置应该是什么:

开关: 个人电脑:6801, SSN:146, 燃气轮机:4794733271, AI:18

我们的服务器: 个人电脑:5100, SSN:146, 燃气轮机:442080000100, AI:18


我想你是在用Restcomm jainslee和cap RA

您可以附加server.log吗

比尔

TN

此消息“TC-CONTINUE:No dialog/transaction for id:67793592”表示TC-CONTINUE原语进入TCAP堆栈,但没有此类本地对话框。未执行任何处理,也未调用onDelimiter()方法

最可能的原因是TCAP对话框已经超时。你需要: -增加dialogTimeout堆栈选项(多次,因为它是CAP)
-或者在“CAPDialogListener.onDialogTimeout(CAPDialog-CAPDialog)”中调用CAPDialog.keepAlive();(这样,您需要检查对话框是否没有保存太长时间)

您可以共享日志吗?当我尝试注册到CAPProvider时,我在org.mobicents.slee.resource.cap.wrappers.CAPProviderWrapper.addCAPDialogListener(CAPProviderWrapper.java:71)获得:java.lang.UnsupportedOperationException下面是我如何创建CAPProvider的实例:Context ctx=(Context)new InitialContext().lookup(“java:comp/env”);CAPProvider=(CAPProvider)ctx.lookup(“slee/resources/cap/2.0/provider”);我得到的CAPProvider是CAPProviderWrapper的一个实例。是否有办法获取CAPProvider,它是CAPProviderImpl的一个实例,或者我可能遗漏了其他内容?是的,我正在将Restcomm jainslee与CAP RA一起使用。我将jboss的日志附加到原始消息Hi,抱歉迟到了。但应用程序收到此消息后,Delimeter()的对话框关闭。其思想是创建新对话框并发送回。不幸的是,在我们的解决方案中,对话框只能在交换机端启动。因此,我们无法在外部创建新对话框。我认为分隔符消息出现在TCAP-END中,因此对话框关闭,您无法发回任何其他消息。你能在你的pcap文件里查一下吗