[asterisk-dev] [Code Review] chan_sip: retransmit response to BYE requests until timer J expires

Klaus Darilion klaus.mailinglists at pernau.at
Thu Jun 17 07:02:33 CDT 2010



On 04.06.2010 22:46, David Vossel wrote:
> According to RFC 3261 section 17.2.2, which describes non-INVITE
> server transaction, when a dialog enters the Completed state it must
> destroy the dialog after Timer J (T1*64) fires.  For a BYE
> transaction Asterisk terminates the dialog immediately during
> sip_hangup() when it should be waiting T1*64 ms.  This results in
> some odd behavior.  For instance if Asterisk receives a BYE and
> transmits a 200ok in response, if the endpoint never receives the
> 200ok it will retransmit the BYE to which Asterisk responds with a
> "481 Call leg/transaction does not exist" because the dialog is
> already gone.

Not sure if I understood it right - but this is not a problem at 
"dialog" layer but at "transaction" layer.

Usually, even if the dialog is already deleted, the BYE transaction 
should still be alive and retransmit the previously sent response.

But I guess this is a problem due to the missing usage of a SIP stack 
(with clear distinction between transaction and dialog layer)

regards
klaus



More information about the asterisk-dev mailing list