Hello,
It seems that when we use proxy which requires authentication for BYE
messages, the response to authenticated resent BYE message is ignored
in SipConnection as expected CSeq on response doesn't match. The exact
code fragment in question is:

    else if(strcmp(sequenceMethod.data(), SIP_BYE_METHOD) == 0 ||
        strcmp(sequenceMethod.data(), SIP_CANCEL_METHOD) == 0)
    {
        // We check the sequence number and method name of the
        // last sent request to make sure this is a response to
        // something that we actually sent
--->    if(mCSeqMgr.getCSeqNumber(CSEQ_ID_INVITE) == sequenceNum &&
                sequenceMethod.compareTo(mLastRequestMethod) == 0)
        {
#ifdef TEST_PRINT
            osPrintf("%s response: %d %s\n", sequenceMethod.data(),
                responseCode, responseText.data());
#endif
            if(responseCode >= SIP_OK_CODE)
            {

The application is not notified on CSeq increase after authenticated
message is sent. As a result we never get notification on call
disconnection and sipxUninitialize() always fails due to "hanging"
connections. If I comment out the CSeq comparison marked with --->,
notifications arrive.

Andrzej Ciarkowski



_______________________________________________
sipxtapi-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/

Reply via email to