Hi.

I setup an ivr using httapi and I've got a strange behaviour with input-timeout and digit-timeout attributes.

The ivr xml is:

<?xml version="1.0"?>                                                                                                                                                                                                                                                          
<document type="text/freeswitch-httapi">
    <work>
        <playback file="ivr/ivr-please_enter_the_number_where_we_can_reach_you.wav" name="FluentIvrDigitInput" terminators="#" input-timeout="10000" digit-timeout="5000">
            <bind action="--my_bind_action_url--">~^\d+#</bind>
        </playback>
        <continue action="--my_continue_action--"/>
    </work>
</document> 

With no input, the timeout triggers after 10s but I was expecting 5s according to digit-timeout.
The relevant log of the call is:

2013-08-13 11:46:10.315627 [DEBUG] mod_httapi.c:1217 Process Tag: [playback]
2013-08-13 11:46:10.315627 [INFO] switch_ivr_async.c:212 Digit parser HTTAPI: Setting realm to 'default'
2013-08-13 11:46:10.315627 [DEBUG] switch_ivr_async.c:318 Digit parser HTTAPI: binding ^\d+#/default/0 callback: 0x7fa1e8486bd0 data: 0x880478
2013-08-13 11:46:10.315627 [INFO] switch_ivr_async.c:212 Digit parser HTTAPI: Setting realm to 'default'
2013-08-13 11:46:10.315627 [INFO] switch_ivr_async.c:201 Digit parser HTTAPI: Setting terminators for realm 'default' to '#'
2013-08-13 11:46:10.315627 [DEBUG] switch_ivr_play_say.c:1315 Codec Activated L16@8000hz 1 channels 20ms
2013-08-13 11:46:12.275614 [DEBUG] switch_ivr_play_say.c:1703 done playing file /u/freeswitch/sounds/en/us/callie/ivr/ivr-please_enter_the_number_where_we_can_reach_you.wav
2013-08-13 11:46:22.275617 [DEBUG] mod_httapi.c:1217 Process Tag: [continue]


With a single digit input, the timeout triggers after 5s: i was expecting 10s (according to input-timeout).
The log follows:

2013-08-13 11:48:34.335616 [DEBUG] mod_httapi.c:1217 Process Tag: [playback]
2013-08-13 11:48:34.335616 [INFO] switch_ivr_async.c:212 Digit parser HTTAPI: Setting realm to 'default'
2013-08-13 11:48:34.335616 [DEBUG] switch_ivr_async.c:318 Digit parser HTTAPI: binding ^\d+#/default/0 callback: 0x7fa1e8486bd0 data: 0x7fa1ec0b7718
2013-08-13 11:48:34.335616 [INFO] switch_ivr_async.c:212 Digit parser HTTAPI: Setting realm to 'default'
2013-08-13 11:48:34.335616 [INFO] switch_ivr_async.c:201 Digit parser HTTAPI: Setting terminators for realm 'default' to '#'
2013-08-13 11:48:34.335616 [DEBUG] switch_ivr_play_say.c:1315 Codec Activated L16@8000hz 1 channels 20ms
2013-08-13 11:48:36.295615 [DEBUG] switch_ivr_play_say.c:1703 done playing file /u/freeswitch/sounds/en/us/callie/ivr/ivr-please_enter_the_number_where_we_can_reach_you.wav
2013-08-13 11:48:37.375645 [DEBUG] switch_rtp.c:3917 RTP RECV DTMF 1:880
2013-08-13 11:48:37.375645 [DEBUG] switch_channel.c:471 RECV DTMF 1:880
2013-08-13 11:48:42.395644 [DEBUG] mod_httapi.c:1217 Process Tag: [continue]

With a multi-digit input, the timeout triggers after 10s from the end of playback (according to input-timeout). I was expecting a 10s timeout after each digit.

2013-08-13 11:51:44.715652 [DEBUG] mod_httapi.c:1217 Process Tag: [playback]
2013-08-13 11:51:44.715652 [INFO] switch_ivr_async.c:212 Digit parser HTTAPI: Setting realm to 'default'
2013-08-13 11:51:44.715652 [DEBUG] switch_ivr_async.c:318 Digit parser HTTAPI: binding ^\d+#/default/0 callback: 0x7fa1e8486bd0 data: 0x7fa1dc3c0468
2013-08-13 11:51:44.715652 [INFO] switch_ivr_async.c:212 Digit parser HTTAPI: Setting realm to 'default'
2013-08-13 11:51:44.715652 [INFO] switch_ivr_async.c:201 Digit parser HTTAPI: Setting terminators for realm 'default' to '#'
2013-08-13 11:51:44.715652 [DEBUG] switch_ivr_play_say.c:1315 Codec Activated L16@8000hz 1 channels 20ms
2013-08-13 11:51:46.675626 [DEBUG] switch_ivr_play_say.c:1703 done playing file /u/freeswitch/sounds/en/us/callie/ivr/ivr-please_enter_the_number_where_we_can_reach_you.wav
2013-08-13 11:51:47.615624 [DEBUG] switch_rtp.c:3917 RTP RECV DTMF 1:800
2013-08-13 11:51:47.615624 [DEBUG] switch_channel.c:471 RECV DTMF 1:800
2013-08-13 11:51:48.255615 [DEBUG] switch_rtp.c:3917 RTP RECV DTMF 2:800
2013-08-13 11:51:48.255615 [DEBUG] switch_channel.c:471 RECV DTMF 2:800
2013-08-13 11:51:48.975626 [DEBUG] switch_rtp.c:3917 RTP RECV DTMF 3:800
2013-08-13 11:51:48.975626 [DEBUG] switch_channel.c:471 RECV DTMF 3:800
2013-08-13 11:51:49.735623 [DEBUG] switch_rtp.c:3917 RTP RECV DTMF 4:800
2013-08-13 11:51:49.735623 [DEBUG] switch_channel.c:471 RECV DTMF 4:800
2013-08-13 11:51:50.355645 [DEBUG] switch_rtp.c:3917 RTP RECV DTMF 5:800
2013-08-13 11:51:50.355645 [DEBUG] switch_channel.c:471 RECV DTMF 5:800
2013-08-13 11:51:51.035623 [DEBUG] switch_rtp.c:3917 RTP RECV DTMF 6:800
2013-08-13 11:51:51.035623 [DEBUG] switch_channel.c:471 RECV DTMF 6:800
2013-08-13 11:51:51.755623 [DEBUG] switch_rtp.c:3917 RTP RECV DTMF 7:800
2013-08-13 11:51:51.755623 [DEBUG] switch_channel.c:471 RECV DTMF 7:800
2013-08-13 11:51:52.455625 [DEBUG] switch_rtp.c:3917 RTP RECV DTMF 8:800
2013-08-13 11:51:52.455625 [DEBUG] switch_channel.c:471 RECV DTMF 8:800
2013-08-13 11:51:53.235631 [DEBUG] switch_rtp.c:3917 RTP RECV DTMF 9:880
2013-08-13 11:51:53.235631 [DEBUG] switch_channel.c:471 RECV DTMF 9:880
2013-08-13 11:51:53.995624 [DEBUG] switch_rtp.c:3917 RTP RECV DTMF 0:880
2013-08-13 11:51:53.995624 [DEBUG] switch_channel.c:471 RECV DTMF 0:880
2013-08-13 11:51:54.695615 [DEBUG] switch_rtp.c:3917 RTP RECV DTMF 7:800
2013-08-13 11:51:54.695615 [DEBUG] switch_channel.c:471 RECV DTMF 7:800
2013-08-13 11:51:55.575615 [DEBUG] switch_rtp.c:3917 RTP RECV DTMF 8:800
2013-08-13 11:51:55.575615 [DEBUG] switch_channel.c:471 RECV DTMF 8:800
2013-08-13 11:51:56.675645 [DEBUG] mod_httapi.c:1217 Process Tag: [continue]


According to Freeswitch wiki, these are the definitions of input-timeout and digit-timeout attributes:
digit-timeout       : Pause to wait for digits after file plays (when input bindings are present)
input-timeout       : Pause to wait for more digits in a multi-digit input

However the input-timeout acts as the maximum time the user has to enter the total input digits after the end of playback while the digit-timeout seems to be "ignored" when input-timeout is present.

What am I missing?

I'm using the latest stable version of freeswitch (1.2.12).

Thank you for your help.

Denis Gasparin