Alfred Neumayer - 2025-03-11

Additional info:

The following snippet returns "No handler found with this call ID":

if (!m_sipEP->IsRegistered(iter->m_param.m_addressOfRecord)) {
    qDebug() << "Out-of-order re-registration:" << (const char*)iter->m_param.m_addressOfRecord;

    auto handler = m_sipEP->FindSIPHandlerByCallID(iter->m_param.m_addressOfRecord, PSafeReference);

    if (!handler) {
        qDebug() << "No handler found with this call ID";
    } else {
        qDebug() << "Handler state:" << handler->GetState();
    }

    iter->Stop(*m_sipEP);
    iter->Start(*m_sipEP);
}

Where ::Stop() and ::Start call SIPEndPoint::Register() and SIPEndPoint::Unregister() respectively.

And in opal traces it shows that the SIPEndPoint is trying to .Append() another handler which fails with Duplicate handler for Method/AOR/Package="5sip:<number>@<address>;transport=udp" after a re-registration. Right before that it complains about Could not find active REGISTER for sip:<number>@<address>;transport=udp

 

Last edit: Alfred Neumayer 2025-03-11