1

我目前正在编写一个使用OPALH323调用的应用程序。我在网上查找了一些工作示例,并设法将一些类似于它应该看起来的东西放在一起,目前我可以通过我的应用程序调用外部 ip,但是当我接受调用时,它会崩溃并死掉。

留给我:

0:12.949               SetUpCall:8752       as
sert.cxx(259)   Assertion fail: Transport not terminated when reattaching thread
, file d:\voip\software\opal\src\opal\transports.cxx, line 1021
PAssertFunc(0xde3f88, 0xffffffffd228226f, 0, 0) + 0x82
PAssertFunc(0x10d6e5f8, 0x3fd, 0, 0x10d6eb98) + 0x15b
OpalTransport::AttachThread(0xde5870, 0xffffffffd22fc76b, 0, 0) + 0x96
H323Connection::SetUpConnection(0xffffffffd22fc713, 0, 0, 0xde6ea8) + 0x196
AsynchCallSetUp(0x10d3572c, 0, 0, 0xdd0108) + 0x7c
PThread1Arg<PSafePtr<OpalConnection,PSafePtrBase> >::Main(0xffffffffd2282faf

根据我的推断,如果导致线程锁定问题可能是错误的(可能是由于我的应用程序正在发送我预期的H323调用,但它也立即发出调用sip:fred,我不知道为什么)。

我当前的 enpoint 设置如下:

    bool OpalManagerLite::Init()
{
    h323EP = new MyH323EndPoint(*this);

    SetAudioJitterDelay(20, 1000);
    DisableDetectInBandDTMF(true);

    if(!InitEndpoint(h323EP))
    {
        return false;
    }

    if (h323EP != NULL) {
      AddRouteEntry("pc:.* = h323:<da>");
      AddRouteEntry("h323:.* = pc:<da>");

      AddRouteEntry("pots:.*\\*.*\\*.* = h323:<dn2ip>");
      AddRouteEntry("h323:.*\\*.*\\*.* = pots:<dn2ip>");

      AddRouteEntry("h323:.* = pots:<da>");
      AddRouteEntry("pots:.* = h323:<da>");
    }


    PString defaultSrcEP = "pc:*";
    srcEP = defaultSrcEP;

    return true;
}

bool OpalManagerLite::InitEndpoint(MyH323EndPoint * h323EP)
{
    h323EP->DisableFastStart(true);
    h323EP->DisableH245Tunneling(true);
    h323EP->ForceSymmetricTCS(true);



    h323EP->SetLocalUserName("Ronnie");
    h323EP->SetDefaultLocalPartyName("Ronnie");

    PStringArray listeners; // Default listeners opened

    OpalListenerTCP *toListen = new OpalListenerTCP(*h323EP,
            PIPSocket::GetDefaultIpAny(), NULL, NULL);


    if (!h323EP->StartListeners(listeners))
    {
        return false;
    }

    return true;
}

我的电话与您拨打电话时所期望的一样,例如SetUpCall(srcEP, ip, callToken);

对于为什么会发生这种情况,任何帮助将不胜感激,我知道我必须在某个我看不到的地方绊倒。

4

0 回答 0