[asterisk-dev] Dial() Command Parameter L Overflow?

Tony Mountifield tony at softins.clara.co.uk
Thu Sep 20 03:55:01 CDT 2007


In article <C316AA0B.114E%Douglas.garstang at mig33global.com>,
Douglas Garstang <Douglas.garstang at mig33global.com> wrote:
> I posted this to the users list. They suggested I post it here. I have two
> Asterisk Systems. One on of those, when I execute this:
> 
> Dial("SIP/teleglobe-007931d0",
> "SIP/13033372500 at teleglobe|60|oL(4007520000:60000:30000)")
> 
> ... It causes Asterisk to immediately read out the time limit of the call
> (66,792 minutes), as soon as the other end answers, even though we aren't
> down to 60s remaining yet. Asterisk then goes into an infinite loop and
> reads out the time limit over and over again!
> 
> On ANOTHER system, with the same Dial command, this does not happen. Both
> versions of Asterisk are the same.
> 
> Anyone got any idea what might be causing this? Maybe one was compiled in 32
> bit mode and an Integer value is overflowing? How do I check this?

Could be. 4007520000 is 0xEEDDE700, which when stored in a signed 32-bit
variable is interpreted as -287447296.

The real problem is that it was a stupid idea to require those values to be
expressed in milliseconds instead of seconds. Who on earth needs millisecond
resolution for call limits and warning announcements?

Cheers
Tony
-- 
Tony Mountifield
Work: tony at softins.co.uk - http://www.softins.co.uk
Play: tony at mountifield.org - http://tony.mountifield.org



More information about the asterisk-dev mailing list