[prev in list] [next in list] [prev in thread] [next in thread] 

List:       sip-implementors
Subject:    RE: [Sip-implementors] 401 for BYE but not for INVITE
From:       "Gaurav Kheterpal" <gaurav.kheterpal () conexant ! com>
Date:       2005-08-26 8:19:59
Message-ID: 4D6E93075B31154298572E6B73CA849D01E54617 () noida-mail ! bbnet ! ad
[Download RAW message or body]

The explanation sounds pretty much logical if the only difference
between the original INVITE (B2BUA -> Proxy) and the RE-INVITE is the
missing *Content-Type* header (only if the Re-INVITE does not have an
SDP)

However, this situation can very well arise in case the authentication
behaviour between the B2BUA and the proxy is different. Some proxies/
B2BUAs allow the facility to challenge specific SIP methods (only
INVITES, REGISTER, BYE) e.g Ondo can challenge both INVITEs and
REGISTERs/ either of the two. I'd experienced a similar problem due to
difference in expected behaviour of 2 intermediate proxy servers
(A->P1->P2->B) w.r.t setting/ resetting of nonce count with the
credentials.

To isolate the problem to authentication issue or missing Content-Type
header, you can re-try the same sequence with auth disabled and without
the credentials. If you still get the same 400 Bad Request followed by
BYE, the missing 'Content-Type' is very much the culprit for this
behaviour.

I hope this helps.

my 2 cents,

Gaurav

-----Original Message-----
From: sip-implementors-bounces@cs.columbia.edu
[mailto:sip-implementors-bounces@cs.columbia.edu] On Behalf Of Banibrata
Dutta
Sent: Thursday, August 25, 2005 5:59 PM
To: sip-implementors@cs.columbia.edu
Subject: [Sip-implementors] 401 for BYE but not for INVITE

Hi,

Can any explain as to why one may see a 401 response for a BYE, but not
for
the corresponding INVITE ?

It is seen in this call-flow:

                    Proxy                          B2BUA
15:30:27.918           ------- INVITE       --------->            (1) 
15:30:27.942           <------ 100 TRYING   ----------            (2)
15:30:28.980           <------ 180 RINGING  ----------            (3)
15:30:29.370           <------ 200 OK       ----------            (4)
15:30:29.372           ------- ACK          --------->            (5)   
15:45:29.275           <------ RE-INVITE    ----------            (6) 
  ( due to a bug in stack's session timer, a inconsistent re-invite is
sent
) 
            ...
15:45:29.285           <------ BYE          ----------            (7)
15:45:29.286           ------- 401 Unauthorized ----->           (10)



Assuming the following network topology:

[external-UA1]
             \ 
              \
             [Proxy]-----[B2BUA]
              /
             /
[external-UA2]


Is the following explanation reasonable ?

I believe that the UA-1, UA-2 & Proxy are within a Trust-Domain, so when
the
first INVITE comes in, it has the P-Asserted-Identity: of UA1, meaning
that
the Proxy trusts it, but nothing in this INVITE says that the B2BUA, is
trusted by the Proxy. The original INVITE transaction completes
successfully, but then B2BUA tries to do the re-INVITE to refresh the
Session-Timer, and this is not considered a valid INVITE (due to the
missing
Content-Type: header) by the Proxy. So even before checking it's
credential
checking can be done, the validity of INVITE to be acceptable message
fails,
leading to the 400 Bad Request. If the INVITE was otherwise okay, it
should
have been challenged too, to authenticate itself. Finally, the
Bad-Request
causes B2BUA to cleanup the call using a BYE, but BYE is valid &
well-formed, but without credentials, so it gets challenged by the
Proxy.


regards,
banibrata dutta.




********************** Legal Disclaimer ****************************
"This email may contain confidential and privileged material for the sole use of the \
intended recipient.  Any unauthorized review, use or distribution by others is \
strictly prohibited.  If you have received the message in error, please advise the \
                sender by reply email and delete the message. Thank you."
**********************************************************************


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic