Re: Transaction timeouts
"M. Rangnathan" <[email protected]> Tue, 27 Feb 2007 09:45:34 -0500
| Newsgroups | gmane.comp.voip.nist-sip |
|---|---|
| Message-ID | <[email protected]> |
Jeroen, Actually all this does is alert the application that a retransmit is about to happen ( thus allowing the application to log its own stats). Transaction.terminate allows you to abort the transaction early. Perhaps this is not a good feature for the API to include and there are better ways to get statistics. I am open to suggestions. This is just a quick hack - lets see if this meets the use case of Andrew and Amos. You are right - retransmission is not same as port unreachable although port unreachable implies your client transaciton will retransmit. I dont know how ( or even if ) we need to support port unreachable notifications however. Would be nice to have but it seems to be tough to support in general besides being expensive ( one would need multiple sockets - one for each destination as you have pointed out and then nat boxes would not like that because they want you to use the same socket to transmit etc. Lots of painful stuff it seems. ) Regards, Ranga Jeroen van Bemmel wrote: >Ranga, > >IMHO this is not a desirable feature: it encourages people to violate RFC3261 (aborting retransmissions), and a retransmission is not the same as a port unreachable. This breaks recovery from UDP packet loss > >What applications may want to have is statistics (including retransmissions) > >Regards, >Jeroen > > >-----Oorspronkelijk bericht ----- >Van: "M. Rangnathan" <[email protected]> >Aan: "M. Rangnathan" <[email protected]> >CC: "Jeroen van Bemmel" <[email protected]>; "Andrew T Gin" <[email protected]>; [email protected] >Verzonden: 27-2-07 03:44 >Onderwerp: Re: [nist-sip] Transaction timeouts > >Well OK it took a few minutes to put this feature in so there it is. >Now you can solicit for retransmission notifications on client >transactions ( although the stack actually does the retransmission ). > >Here it is : > >SIPClientTransaction.setNotifyOnRetransmit ( boolean ) > > >Its pretty simple. You just get notificatoin of a retransmission from >the client transaction but the retransmission is actually done by the >stack. I think it does what you want -- it will allow you to kill off >the transaction early using transaction.terminate if you want. Its >untested code - give it a try and tell me if it works. I'll try to get >somethign like it into the next rev of the spec ( assuming that there is >one ). I can see why it is needed. > >Ranga > >M. Rangnathan wrote: > > > >>Will that work? You need multiple sockets unles all you ever do is >>talk to a single destination. The ICMP is delivered asynchronously and >>will not be cached unless the socket is bound. Thus when the ICMP >>comes back the binding better not have changed in the meanwhile. If it >>does the ICMP is dropped I believe and hence the solution will not >> >> > > > > -- M. Ranganathan Advanced Networking Technologies Division, National Institute of Standards and Technology (NIST), 100 Bureau Drive, Stop 8920, Gaithersburg, MD 20899. tel:301 975 3664 , fax:301 590 0932 http://w3.antd.nist.gov/ Advanced Networking Technologies For the People!