[sip-comm-dev] SIP challenge handling / transaction problem


#1

Hi all,

As I recently reported in some previous messages, there is a problem when using handleChallenge from the SipSecurityManager.

I don't understand exactly why this problem occur and I need your help to correct it.

When we receive a 401/407 message, the sip stack doesn't close the transaction. When we call the handleChallenge method, a new client transaction is created and it's of course this one which will be closed when the authentication process ends. But the first transaction remain active and timeout occurs and the message is resend again and again.

I've successfully tested to explicitly close the first transaction right after the creation of the new transaction by handleChallenge.

Here are my questions :
- first, where do we have to close the initial transaction ? in handleChallenge or after we call this method ? Doesn't this problem occur elsewhere in the SIP implementation ?
- second, just for curiosity, why the message resend using the initial transaction is the one created by handleChallenge (and absolutely not associated with the initial transaction but with the new one) ?

Cheers,
Ben

···

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#2

Hi again Ben,

Benoit Pradelle wrote:

Hi all,

As I recently reported in some previous messages, there is a problem when using handleChallenge from the SipSecurityManager.

I don't understand exactly why this problem occur and I need your help to correct it.

When we receive a 401/407 message, the sip stack doesn't close the transaction. When we call the handleChallenge method, a new client transaction is created and it's of course this one which will be closed when the authentication process ends. But the first transaction remain active and timeout occurs and the message is resend again and again.

That's very strange!

I've successfully tested to explicitly close the first transaction right after the creation of the new transaction by handleChallenge.

Here are my questions :
- first, where do we have to close the initial transaction ?

Nowhere. That's what makes it strange. Any final response (200-699) should put the transaction in a Completed state.

Doesn't this problem occur elsewhere in the SIP implementation ?

No. Check out your registration for example. The original (non-authenticated) REGISTER request is not retransmitted after the challenge. You could also try to start a call and you'll see that the first INVITE is not retransmitted.

- second, just for curiosity, why the message resend using the initial transaction is the one created by handleChallenge (and absolutely not associated with the initial transaction but with the new one) ?

I didn't understand the question.

Emil

···

Cheers,
Ben

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net