Re: Transaction timeouts
"Jeroen van Bemmel" <[email protected]> Tue, 27 Feb 2007 01:03:06 +0100
| Newsgroups | gmane.comp.voip.nist-sip |
|---|---|
| Message-ID | <009301c75a02$a8739510$0601a8c0@BEMBUSTER> |
perhaps you can try to call connect() on the single UDP socket each time you send a datagram. Adds some overhead, but may provide feedback when unreachable Suggest to try something like: if (options.checkUnreachable ) socket.connect( addr ); socket.sendto( addr ) Regards, Jeroen M. Rangnathan wrote: > Yes that is correct and that is a good observation. However, if we can > come up with a stack config parameter to support this behavior that > might be possible ( at the cost of scalability ). The default would > work the way it currently does (i.e. single socket). > > Ranga > > Jeroen van Bemmel wrote: > >> IIRC you can only learn about ICMP errors if you use a connected UDP >> socket (in Java at least). Unfortunately that means you would need to >> create a socket for each peer, which scales poorly. >> >> Regards, >> Jeroen >> >> M. Rangnathan wrote: >> >>> Andrew T Gin wrote: >>> >>>> Hi >>>> >>>>> You can be informed of retransmission alerts on the Server >>>>> transaction. See ServerTransaction.enableRetransmissionAlerts. On >>>>> the client side of the transaction, there is no retransmission >>>>> alert. >>>> >>>> >>>> I'm interested in the reasoning behind this :) >>> >>> >>> >>> We did not think it was necessary. What is the use case? On the >>> server side, if you want to remain true to RFC 3216, the server >>> retransmits till ACK >>> >>>>>> timeOutEvent) method only ever receives Timeout.TRANSACTION >>>>>> timeout events. How do I make it so my application is >>>>>> notified of retransmit >>>>>> timeouts? Are they received at processTimeout? >>>>>> >>>>>> When the destination host is unreachable, the application >>>>>> gets ICMP unreachable replies to each UDP retransmission. Is >>>>>> it possible to be >>>>>> notified *immediately* when the destination is unreachable? >>>>>> >>>>> Let me think of this a bit. I could use the public void >>>>> processIOException(IOExceptionEvent exceptionEvent) event >>>>> notification mechansm for this. How does the UDP socket see >>>>> this. I think I would have to use SOCTL to enable ICMP packets >>>>> to be seen right ?. Is the feature available on J1.42 ? If not it >>>>> becomes a J 5 only thing which I want to avoid if possible. I >>>>> will take a look to see if I can hook this in but some hacking >>>>> from you would speed the process. See if you can hack >>>>> UDPMessageChannel to get notifications for ICMP packets. Call a >>>>> dummy method when you get the necessary notificaiton. I'll take >>>>> it from there. >>>> >>>> >>>> So it doesn't appear to be a current way to do it? I was more >>>> interested in whether this was possible with the current >>>> implementation. Ill just try work around it :D THanks for your >>>> efforts! >>> >>> >>> >>> No there is not but there should be. Its an important feature that >>> is missing. Figure out how to read ICMP messages from the UDP socket >>> imbedded in UDPMessageChannel. If needed, we can make a 1.5 only >>> feature that allows you to inform the application asynchronously >>> when an ICMP notification comes along. If you find a work around , >>> share it here and we can figure out how to make it work in the >>> stack. >>>> >>>> Currently, TCP 'io exceptions' do not go through >>>> processIOException; they are caught as a SIP exception in the try >>>> catch block of each method. So if the UDP "io exception" >>>> implemented should they be treated the same? >>> >>> >>> >>> Are you using JSIP 1.2 ? If so, IO Exceptions should be reported as >>> IOExceptions. If not there is a bug. >>> >>> >>>>> That would be in violation of the SIP transaction state machine - >>>>> something that I want to avoid. You can try implementing the >>>>> setBaseTimer on SipProvider ( currently disabled -- throws >>>>> UnsupportedOperation). >>>> >>>> >>>> So this is a 'requirement' of SIP? I guess so from the RFC. Again >>>> I'll work around this. THanks again! >>>> >>>>>> >>>>>> Thanks for your help, I'm usually a bit sceptical of mailing >>>>>> lists, as >>>>>> questions usually go unanswered, so even if I happen to find >>>>>> someone >>>>>> else with the exact same problem, sometimes there are no >>>>>> replies! >>>>> >>>>> >>>>> Have faith. :-) >>>> >>>> >>>> What I meant here was that this Jain-SIP project is practically a >>>> model of how all projects should be! Active support, quick >>>> replies, a working implementation, and most importantly, >>>> comprehensive documentation! >>> >>> >>> >>> Ah! I should put this up on the user experiences page. :-) >>> >>>> >>>> Thanks for all your help so far! I'll make sure to acknowledge you >>>> all in my thesis :) >>> >>> >>> >>> Thanks. Keep hacking till you get there. :-) >>> >>> Ranga >>> >>>> Andrew