At 11:33 AM +0200 on 8/21/05, Olle E. Johansson wrote:
John Todd wrote:
 At 7:06 AM +0200 on 8/19/05, Olle E. Johansson wrote:

 Chee Foong wrote:

  OK, I under stand.
  So, can this be considered a bug in asterisk?
  Since it knows how to response to a BYE, it should also know it's
 time to
  clear the channel.


 The real fault here is that the other end issues a BYE when we have no
 session set up by
 INVITE/200 OK/ACK - to cancel a pending INVITE you use CANCEL, not BYE.
 That is a bug, please ask your vendor to look up CANCEL in the SIP rfc.

 And yes, we should be able to handle faulty devices better, but will
 concentrate our energy on being able to improve the way we handle
 devices that actually support basic SIP according to the standard. ;-)

 /Olle



 This problem could perhaps could be resolved by implementation of
 session-timers on the Asterisk side, assuming that the UAC also
 supported (or at least did not crash on) such timers.

 http://www.faqs.org/rfcs/rfc4028.html

 If Asterisk sent re-INVITEs after the Session-Expires: duration, then it
 (Asterisk) could close channels which did not respond.  I would think
 that this would be something that could be set on a per-peer basis or
 globally.

 I believe my previous tests with Asterisk showed that Asterisk supported
 Session-Expires: in a non-harmful way (i.e.: did not crash) but Asterisk
 did not seem to have any "hooks" for generating a Session-Expires:
 header or creation of timers.  Does anyone have any alternate
 information?  It's been a year or so since I experimented with equipment
 using session-timers.

...and you haven't seen my bug report with a patch for SIP timers
either? Not session timers, but as a starting point an implementation of
the standard T1 timer for retransmits. When that is done, SIP timers
would not be a bad thing to add.

/O

Actually, I've been running your patch for about a week, and I've just re-patched with CVS-HEAD. (One chunk fails, but it's an easy fix.)

Session-timers would be an excellent thing to add, as they will eliminate many of the "phantom channel" problems people have. At the same time, it should be noted that not all equipment handles session-timers correctly, so an optional per-peer flag should be available as well as the global value.

Perhaps something like:

session-timer=[<seconds>,[yes/no/always]]
min-session-timer=<seconds>
max-session-timer=<seconds>

If session-timer=yes, then accept whatever the other end puts as the session-timer as long as it meets min-session-timer and max-session-timer. If "no", then don't accept a session-timer. (Is this worth having?) If session-timer=always then the session should be refused unless a session-timer agreement can be made.

Sound like a reasonable set of values? Then, it's just a simple matter of giving coffee to a programmer and having them do it! ;-)

JT
_______________________________________________
Asterisk-Dev mailing list
[EMAIL PROTECTED]
http://lists.digium.com/mailman/listinfo/asterisk-dev
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to