arnaudcoquelet / fusionpbx

Automatically exported from code.google.com/p/fusionpbx
0 stars 0 forks source link

IVR Timeouts Backwards #515

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
svn info:
Revision: 4894

Per FreeSWITCH Wiki:

max-failures - maximum wrong digits entry(ies) before ending the menu (default 
3 if not specified or invalid (less than 1) values are specified)

max-timeouts - maximum timeout retry(ies) before ending the menu (default will 
use the max_failures value or 3 if both are left blank or invalid (less than 1) 
values are specified)

Tried setting a max-timeouts to 1 such that the IVR plays one time before going 
to the default destination.  Instead the IVR plays the default 3 times.  It 
wasn't until max-failures was set that the desired behavior was achieved.

This is backwards. Max timeouts should control the default number of times the 
IVR plays unless a digit is pressed, in which case max failures should control 
the number of times you are allow to enter incorrect options.

Even configured as such, I'm seeing DTMF entry failures at greater than 25.  
This would allow someone to stay in an IVR practically forever (and it may 
currently).

Confirm Attempts: 3
Inter-Digit Timeout: 2000
Max Failures: 3
Max Timeouts: 1
Digit Length: 5
Maximum number of digits allowed.

Original issue reported on code.google.com by James.O....@gmail.com on 15 Dec 2013 at 9:50

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago

I tried to fix ivr_menu.lua and seems it works for me with right behaviour 
after failed tries exceeded.

No warranty from me - I not have any expirience in LUA language. 
Make backup of ivr_menu.lua before make changes.

Find:

if (string.len(dtmf_digits) > 0) then
            freeswitch.consoleLog("notice", "[ivr_menu] dtmf_digits: " .. dtmf_digits .. "\n");
            menu_options(session, dtmf_digits);
        else

Change to:

if (string.len(dtmf_digits) > 0) then
            if (tries <= (tonumber(ivr_menu_max_failures)+1)) then
                freeswitch.consoleLog("notice", "[ivr_menu] dtmf_digits: " .. dtmf_digits .. "\n");
                menu_options(session, dtmf_digits);

I think after update FusionPBX to next release ivr_menu.lua will be replaced 
from release, so keep your own script version for backup.

Original comment by blessen...@gmail.com on 23 Sep 2014 at 2:55