Delay before playing message when switching from an IVR to another one

Hello,

FreePBX 15.0.16.81
Asterisk 16.15.1

I have 2 versions of a menu (recording) , French and English. Before that, there is a welcome message that let you choose English by pressing 8 ( and French is the default). However, while playing the French version, you can still press 8 to get English and while playing the English, you can also press 9 to get the French menu.

Switching from one version of the menu to the other one takes about 4-5 seconds. I checked the logs and I dont see any activity in that time. Here is an example:

[2021-07-02 14:03:06] VERBOSE[32663][C-0000003b] file.c: <SIP/Allstream-0000004c> Playing 'custom/GA_WorkHours_FR5.slin' (language 'fr')
[2021-07-02 14:03:11] VERBOSE[32663][C-0000003b] pbx.c: Executing [[email protected]:1] Set("SIP/Allstream-0000004c", "__ivrreturn=0") in new stack
[2021-07-02 14:03:11] VERBOSE[32663][C-0000003b] pbx.c: Executing [[email protected]:1] Set("SIP/Allstream-0000004c", "__ivrreturn=0") in new stack
[2021-07-02 14:03:11] VERBOSE[32663][C-0000003b] pbx.c: Executing [[email protected]:2] Goto("SIP/Allstream-0000004c", "app-languages,6,1") in new stack
[2021-07-02 14:03:11] VERBOSE[32663][C-0000003b] pbx.c: Executing [[email protected]:2] Goto("SIP/Allstream-0000004c", "app-languages,6,1") in new stack
[2021-07-02 14:03:11] VERBOSE[32663][C-0000003b] pbx_builtins.c: Goto (app-languages,6,1)
[2021-07-02 14:03:11] VERBOSE[32663][C-0000003b] pbx_builtins.c: Goto (app-languages,6,1)
[2021-07-02 14:03:11] VERBOSE[32663][C-0000003b] pbx.c: Executing [[email protected]:1] NoOp("SIP/Allstream-0000004c", "Changing Channel to language: en (GA_SetLanEN_LAN)") in new stack
[2021-07-02 14:03:11] VERBOSE[32663][C-0000003b] pbx.c: Executing [[email protected]:1] NoOp("SIP/Allstream-0000004c", "Changing Channel to language: en (GA_SetLanEN_LAN)") in new stack
[2021-07-02 14:03:11] VERBOSE[32663][C-0000003b] pbx.c: Executing [[email protected]:2] Set("SIP/Allstream-0000004c", "CHANNEL(language)=en") in new stack

[more stuff removed]

[2021-07-02 14:03:11] VERBOSE[32663][C-0000003b] pbx.c: Executing [[email protected]:7] Set("SIP/Allstream-0000004c", "TIMEOUT(digit)=3") in new stack
[2021-07-02 14:03:11] VERBOSE[32663][C-0000003b] func_timeout.c: Digit timeout set to 3.000
[2021-07-02 14:03:11] VERBOSE[32663][C-0000003b] func_timeout.c: Digit timeout set to 3.000
[2021-07-02 14:03:11] VERBOSE[32663][C-0000003b] pbx.c: Executing [[email protected]:8] ExecIf("SIP/Allstream-0000004c", "1?Background(custom/GA_WorkHours_EN5)") in new stack
[2021-07-02 14:03:11] VERBOSE[32663][C-0000003b] pbx.c: Executing [[email protected]:8] ExecIf("SIP/Allstream-0000004c", "1?Background(custom/GA_WorkHours_EN5)") in new stack
[2021-07-02 14:03:11] VERBOSE[32663][C-0000003b] file.c: <SIP/Allstream-0000004c> Playing 'custom/GA_WorkHours_EN5.slin' (language 'en')
[2021-07-02 14:03:11] VERBOSE[32663][C-0000003b] file.c: <SIP/Allstream-0000004c> Playing 'custom/GA_WorkHours_EN5.slin' (language 'en')

As you can see, it started playing the FR version at 14:03:06. Right at the beginning of that message, I pressed 8 . The FR message stopped playing immediately and it took about 4-5 sec before the EN version starts. We can see in the log that asterisk wakes up at 14:03:11, executes a few actions and starts playing in the very same second ( 14:03:11 ). So, the 4-5 sec of silence was before the wake up (i.e. between 14:03:06 and 14:03:11).

I get the same delay if go from EN to FR or FR to EN.

What is causing that delay ?

Note that I checked the messages and they dont have any silence at the beginning or the end.

Thank you

Gilbert

It is presumably waiting the Timeout to see whether more digits will be input.
Assuming that you don’t have an actual conflict (such as multi-digit IVR options, or extension numbers beginning with the same digits as IVR options), try setting Force Strict Dial Timeout to No - Legacy.

If there are conflicting options, consider reducing Timeout to e.g. 2 or 3 seconds. Add some silence at the end of the Announcement so the user will still have 5 seconds to enter the first digit.

Thank you for the reply.

Good point about the timeout. The setting was already set to Force Strict Dial Timeout to No - Legacy

However, I believe that the timeout that I perceive is not the one entered in the IVR settings. I tried 1 and 10 sec and did not see any difference, the delay perceived is not changed by that setting. But if I disable the direct dialing of extensions in the ivr, the delay is eliminated. And if I dont do anything, it takes 10 sec to move to the default destination as expeced (my timeout was set to 10).

So, my next question: is there a way to change the default timeout when doing a direct dialing ? Is that set in the dial plan ?

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.