Summary:ASTERISK-08155: wrong behavior of 'L(x:y:z)' parameters in Dial application
Reporter:Yuri Sklar (skil)Labels:
Date Opened:2006-11-20 11:55:20.000-0600Date Closed:2006-11-21 20:38:33.000-0600
Versions:Frequency of
Environment:Attachments:( 0) channel.c.patch
( 1) channel.c.yet_another.patch
Description:the example of it is so:

   -- Executing Set("SIP/phone3-0817b868", "LIMIT_PLAYAUDIO_CALLER=yes") in new stack
   -- Executing Set("SIP/phone3-0817b868", "LIMIT_PLAYAUDIO_CALLEE=no") in new stack
   -- Executing Set("SIP/phone3-0817b868", "LIMIT_TIMEOUT_FILE=hello-world") in new stack
   -- Executing Set("SIP/phone3-0817b868", "LIMIT_CONNECT_FILE=hello-world") in new stack
   -- Executing Set("SIP/phone3-0817b868", "LIMIT_WARNING_FILE=hello-world") in new stack
   -- Executing Dial("SIP/phone3-0817b868", "SIP/phone1|20|L(15000:10000:5000)") in new stack
   -- Limit Data for this call:
   -- - timelimit     = 15000
   -- - play_warning  = 10000
   -- - play_to_caller= yes
   -- - play_to_callee= no
   -- - warning_freq  = 5000
   -- - start_sound   = hello-world
   -- - warning_sound = hello-world
   -- - end_sound     = hello-world
   -- Called phone1
   -- SIP/phone1-08181790 is ringing
   -- SIP/phone1-08181790 answered SIP/phone3-0817b868
   -- Playing 'hello-world' (language 'en')
 == Spawn extension (l_call, 1, 6) exited non-zero on 'SIP/phone3-0817b868'

So it plays only the first sound (start_sound) with starting the call.
And then it makes hungup after 'x-y' ! ms with no 'warning sound' or even 'end_sound' . But it should do hungup after 'x' ms.


my context for example:

exten => 1,n,SET(LIMIT_TIMEOUT_FILE=hello-world)
exten => 1,n,SET(LIMIT_CONNECT_FILE=hello-world)
exten => 1,n,SET(LIMIT_WARNING_FILE=hello-world)
exten => 1,n,Dial(SIP/phone1,20,L(15000:10000:5000))
Comments:By: Yuri Sklar (skil) 2006-11-20 11:58:28.000-0600

Please tell me if I missed somethihg, because it's my first issue

By: Nickolay Kharchevin (mykola) 2006-11-20 13:35:02.000-0600

Asterisk dont play any sound if nowtime - starttime - timelimit < 5000 ms
Problem in ast_bridge_call. I make some modifications in channels.c (see patch) and now it work for me.
Test needed.

By: jsolares (jsolares) 2006-11-20 17:34:56.000-0600

Works fine here, i had it fixed a different way but this is simpler.

I think L(x:y:z) was not working at all, i had L(30000:10000) and the calls were dying after aprox 20000ms into it without playing the warning file.

By: Nickolay Kharchevin (mykola) 2006-11-21 05:14:37.000-0600

Dial(SIP/phone1,20,L(15200:10000:5000)) - will make hangup after 20200 ms.

see yet.another.patch

By: jsolares (jsolares) 2006-11-21 10:38:37.000-0600

Tried the new patch with L(60000:20000:5000), got warnings played at around 40s, 45s, 50s. no warning at around 55s, call got hung up at 62s.

Not sure if it should play the one at aprox 55s, which seems to have been scheduled at 56 or 57. The call got hungup at 62s, all calls seem to overshoot by 1 or 2s, without the patch it would have gotten hangup at around 41s. so the 1 or 2 extra seconds dont seem to be from the patch but due to timing.

By: Steve Murphy (murf) 2006-11-21 20:31:32.000-0600

OK, I've committed these changes to the 1.2 tree in r47910.

I tested them on a local 1.2 copy, and verified that the bug exists, and the supplied patch fixed it.

A test on the 1.4 branch shows it works OK, and needs no fixing.

By: Steve Murphy (murf) 2006-11-21 20:38:32.000-0600

Since 1.4 already works OK, I blocked 47910 from 1.4 with r47911.