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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Banibrata Dutta Sent: Thursday, August 25, 2005 5:59 PM To: [email protected] 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." ********************************************************************** _______________________________________________ Sip-implementors mailing list [email protected] http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors
