RE: The stack sets dialog state to TERMINATED on sending aBYE request!
"Pham Nguyen, Quang Duy" <[email protected]>
| Newsgroups | gmane.comp.voip.nist-sip |
|---|---|
| Message-ID | <[email protected]> |
Hi Jeroen, I get the latest source and retest and see that the problem still exists (see attached debug logs). I think the problem is that the dialog state will still be set to TERMINATED for BYE request in the method SipDialog.addTransaction(): DEBUG - gov.nist.javax.sip.stack.SIPDialog.setState(SIPDialog.java:835) [Setting dialog state for gov.nist.javax.sip.stack.SIPDialog@8acf6e] DEBUG - gov.nist.core.LogWriter.logStackTrace(LogWriter.java:121) [[SIPDialog.java:836][SIPDialog.java:1070][SIPDialog.java:1629][CallMana ger.java:771][MccProviderImpl.java:425][ConnectionImpl.java:592][Connect ionImpl.java:581][StreamingTask.java:303][Executors.java:417][FutureTask .java:269][FutureTask.java:123][ScheduledThreadPoolExecutor.java:65][Sch eduledThreadPoolExecutor.java:168][ThreadPoolExecutor.java:650][ThreadPo olExecutor.java:675][Thread.java:595]] DEBUG - gov.nist.javax.sip.stack.SIPDialog.setState(SIPDialog.java:839) [gov.nist.javax.sip.stack.SIPDialog@8acf6e old dialog state is Confirmed Dialog] DEBUG - gov.nist.javax.sip.stack.SIPDialog.setState(SIPDialog.java:841) [gov.nist.javax.sip.stack.SIPDialog@8acf6e New dialog state is Terminated Dialog] DEBUG - gov.nist.javax.sip.stack.SIPDialog.addTransaction(SIPDialog.java:1126) [Transaction Added gov.nist.javax.sip.stack.SIPDialog@8acf6e9097070/test_tag_0008568666] regards, Duy ________________________________ From: Jeroen van Bemmel [mailto:[email protected]] Sent: Mittwoch, 18. Oktober 2006 18:38 To: Pham Nguyen, Quang Duy; [email protected] Subject: Re: [nist-sip] The stack sets dialog state to TERMINATED on sending aBYE request! Hi Duy, You are right, this is wrong behavior. Fix in CVS, now a flag is set instead, which disallows sending of new requests (except BYE to answer a challenge) Regards, Jeroen ----- Original Message ----- From: Pham Nguyen, Quang Duy <mailto:[email protected]> To: [email protected] Sent: Wednesday, October 18, 2006 5:23 PM Subject: [nist-sip] The stack sets dialog state to TERMINATED on sending aBYE request! Hi, I've just found a problem within the SIP stack. It sets the dialog state to TERMINATED as soon as I send out a BYE request without waiting for the response. This behavior is not standard conform (please see chapter 15.1 "Terminating a Session with a BYE Request" of RFC 3261)! This behavior causes serious problem in enviroment where security is enabled (authentication is required). When a user sends a BYE to drop a call, the belonging dialog will be set to TERMINATED. The BYE request will not be accepted immediately by the PBX, that responds with '401 Unauthorized' including a challenge. The user then try to resend the BYE request (this time including the response to the challenge) using a new client transaction. By creating the new client transaction the dialog in state TERMINATED will be removed from the dialog table. For some reasons (under heavy load) the PBX again responds with '401 Unauthorized' and this time the call to clientTransaction.getDialog() will return NULL and the user can not send BYE to drop the call any more! Please find attached the debug logs of the described scenario. The stack should wait for the response for the BYE request before setting the state of the dialog to TERMINATED. regards, Duy ________________________________ _______________________________________________ nist-sip mailing list [email protected] http://www-x.antd.nist.gov/mailman/listinfo/nist-sip _______________________________________________ nist-sip mailing list [email protected] http://www-x.antd.nist.gov/mailman/listinfo/nist-sip
DialogTerminatedOnSendingBYE_2.log
(application/octet-stream, 141.8 KB) - not displayed