[sip-comm-dev] Re: bug in reINVITE


#1

Hi,

On Invite(or another request), proxy can require a WWWAuthenticate.
In this case Sip communicator called function handleChallenge() in
SipSecurityManager.class and ofcourse a new Invite will be send with
new CSeq number and a new branch in Via:.

But if you want to cancel the call, Sip Communicator will send CANCEL with
old CSeq and old branch from first INVITE.

What need to do:

in handleChallenge() after

···

--------------------------------------------------------------------------
CSeqHeader cSeq =
           (CSeqHeader) reoriginatedRequest.getHeader( (CSeqHeader.NAME));
       cSeq.setSequenceNumber(cSeq.getSequenceNumber() + 1);
----------------------------------------------------------------

put the next code:

------------------------------------------------------------------------------------------
   //Fixed CSeq and viaHeader in original Header
       CSeqHeader cSeqOriginal = (CSeqHeader) challengedRequest.getHeader((CSeqHeader.NAME));
       cSeqOriginal.setSequenceNumber(cSeq.getSequenceNumber());
       
       ViaHeader viaHeaderOriginal = (ViaHeader) challengedRequest.getHeader(ViaHeader.NAME);
       viaHeaderOriginal.setBranch (
           ((ViaHeader) reoriginatedRequest.getHeader(ViaHeader.NAME)).getBranch()
       );
  
----------------------------------------------------------------------------------------------------

rfc3261 Chapter 9

Have a nice day,
--
Alexandr Dubovikov * baron@iRC RusNet * mailto:shurik@start4.info
    AD1-UANIC * ICQ: 122351182 * http://www.start4.info

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