[Freeswitch-docs] problem with "play_and_get_digits" command (DTMF delay time)

Bote Man bote_radio at botecomm.com
Thu Sep 3 18:03:34 MSD 2015


Documented under bind_digit_action

 

I sure hope that’s where this applies.

 

Bote

 

 

From: Brian West
Sent: Monday, 31 August, 2015 09:50
To: FreeSWITCH Users Help; FreeSWITCH Docs Team
Subject: Re: [Freeswitch-docs] [Freeswitch-users] problem with "play_and_get_digits" command (DTMF delay time)

 

These are probably on the old wiki, just not migrated over yet.   You're more than welcome to give back by documenting them too. :)

 

Thanks,

 

 

On Mon, Aug 31, 2015 at 5:34 AM, Manish Talwar <manish.talwar at nexxuspg.com> wrote:

Hi Michael,

 

Thanks for your help.

 

Its working fine now with setting the value of "bind_digit_digit_timeout" and "bind_digit_input_timeout" channel variable. I have set it as 10000 and its wait till 10 sec now for matching the regular expression.

 

<execute application="set" data="bind_digit_digit_timeout=10000" />

<execute application="set" data="bind_digit_input_timeout=10000" />

 

Its working fine with me, your docs team can document this if required.

 

Thanks,

 

Regards,

Manish Talwar

 

  _____  

From: freeswitch-users-bounces at lists.freeswitch.org <freeswitch-users-bounces at lists.freeswitch.org> on behalf of Michael Collins <msc at freeswitch.org>
Sent: 28 August 2015 23:15


To: FreeSWITCH Users Help
Subject: Re: [Freeswitch-users] problem with "play_and_get_digits" command (DTMF delay time)

 

I found this in mod_dptools.c inside the bind_to_session function:

    if (!(dmachine = switch_core_session_get_dmachine(session, target))) {
        uint32_t digit_timeout = 1500;
        uint32_t input_timeout = 0;
        const char *var;

        if ((var = switch_channel_get_variable(channel, "bind_digit_digit_timeout"))) {
            digit_timeout = switch_atoul(var);
        }

        if ((var = switch_channel_get_variable(channel, "bind_digit_input_timeout"))) {
            input_timeout = switch_atoul(var);
        }

        switch_ivr_dmachine_create(&dmachine, "DPTOOLS", NULL, digit_timeout, input_timeout, NULL, digit_nomatch_action_callback, session);
        switch_core_session_set_dmachine(session, dmachine, target);
    }

 

It appears that there might be two channel variables for you to try:
bind_digit_digit_timeout
bind_digit_input_timeout

These appear not to be documented at present, so I think you can help pay it forward by tinkering with them and then reporting back what you find out. As a guess, I'd say you're running into an issue with people who spend more than 1.5 seconds between digits. (It appears the default is 1500ms.) Try setting the bind_digit_digit_timeout value in the dialplan. Set it to something absurdly long like 7500 so that you can know for sure it is working. 

Please report back with your findings so that the docs team can document this. Bonus points if you document it yourself. :)

Hope this helps,

Michael

 

 

 

On Wed, Aug 26, 2015 at 10:16 PM, Manish Talwar <manish.talwar at nexxuspg.com> wrote:

Hi,

 

Thank you for your response. 

 

Actually, we are using multiple play_and_get_digits in a single dialplan. And when user inputed any matching  format of input then we need to leave all remaining play_and_get_digits commands of that dialplan. That is why I used bind_digit_action also in same dialplan.

 

Please suggest how do we make the changes for this concern, how do we break the dialplan when required matching input found. 

 

Basically, its works fine as our requirement but we need to increase the DTMF delay time only, whenever user inputed slowly then its take the chunk of inputed data and tried to match the bind_digit_action  expression. As its break the DTMF into many chunks so its not matching expected regular expression of command. 

 

Please suggest.

 

Thanks,

 

Regards,

Manish Talwar

 

  _____  

From: freeswitch-users-bounces at lists.freeswitch.org <freeswitch-users-bounces at lists.freeswitch.org> on behalf of Michael Collins <msc at freeswitch.org>
Sent: 26 August 2015 20:12
To: FreeSWITCH Users Help
Subject: Re: [Freeswitch-users] problem with "play_and_get_digits" command (DTMF delay time) 

 

Is there a reason that you're trying to use both bind_digit_action and play_and_get_digits? Normally you'd use just one or the other, and if you're explicitly asking the user for input then I'd think that you would only need play_and_get_digits.

-MC

 

On Tue, Aug 25, 2015 at 5:56 AM, Manish Talwar <manish.talwar at nexxuspg.com> wrote:

Hi,

 

I have found one small problem with "play_and_get_digits" command. We have a IVR application and I am trying to get  either "16 digit" card number or "0" for move to customer support from the user.  Please find my dialplan as follows:

 

2015-08-25 18:05:37.535806 [CRIT] mod_httapi.c:1148 Debugging Return Data:

<document type="xml/freeswitch-httapi"><params></params><work><execute applicati

on="log" data="card number inputed: 2"/><execute application="flush_dtmf"/><exec

ute application="sleep" data="2000"/><execute  application="clear_digit_action"

data="my_digit" /><execute  application="bind_digit_action" data="my_digit,~\d{1

6}|^[0]{1},exec:transfer,dummy_transfer" /><execute action="http:/

/localhost:8080/ivr/fsentercardnumber/response/"  application="play_and_get_digi

ts" data="0 16 1 1000 # en-US/enter_card_number.mp3 '' Digits '' 1000 '' " /><ge

tVariable name="Digits"/><execute action="http://localhost:8080/ivr/fsentercardnumber/response/"  a

pplication="play_and_get_digits" data="0 16 1 20000 # en-US/menu_speak_csr.mp3 '

' Digits '' 20000 '' " /><getVariable name="Digits"/><execute  application="clea

r_digit_action" data="my_digit" /></work></document>

 

 

It is working fine as expected if user input 16 digit number continuously without any delay.  After getting full 16 digit number it will match the "bind_digit_action" and move to other dialplan.  

 

But my problem is if a user enter card number slowly then its trying to match already inputed DTMF values with matching binding and received next inputed value as different DTMF values. As a example, if I tried to input 55 and then wait for 1-2 seconds then Freeswitch tried to match 55 with binding. 

 

 

2015-08-25 18:05:39.535920 [DEBUG] switch_ivr_play_say.c:1305 Codec Activated L1

6 at 8000hz 1 channels 20ms

2015-08-25 18:05:39.755933 [DEBUG] switch_rtp.c:5819 RTP RECV DTMF 5:2080

2015-08-25 18:05:40.015948 [DEBUG] switch_rtp.c:5819 RTP RECV DTMF 5:2080

2015-08-25 18:05:41.536035 [DEBUG] mod_dptools.c:132 sofia/internal/18188535351@

192.168.1.112 Digit NOT match binding [55]

2015-08-25 18:05:41.536035 [DEBUG] switch_channel.c:486 RECV DTMF 5:2000

2015-08-25 18:05:41.536035 [DEBUG] switch_channel.c:582 sofia/internal/181885353

51 at 192.168.1.112 Queue dtmf

digit=5 ms=250 samples=2000

2015-08-25 18:05:41.536035 [DEBUG] switch_channel.c:486 RECV DTMF 5:2000

2015-08-25 18:05:41.536035 [DEBUG] switch_channel.c:582 sofia/internal/181885353

51 at 192.168.1.112 Queue dtmf

digit=5 ms=250 samples=2000

 

 

I don't want fresswtich tried to match the binding if there is any pause time while inputed the number as user can type slowly. 

 

I want to reset this binding delay time so that user can type slowly and we will get full 16 digits number for matching inputed value in certain time interval.

 

Please suggest me how can I resolve this problem and increase the DTMF delay time.

 

Thanks,

 

Regards,

Manish Talwar

 

 

 

 


_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting at freeswitch.org
http://www.freeswitchsolutions.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://confluence.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users at lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org

 


_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting at freeswitch.org
http://www.freeswitchsolutions.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://confluence.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users at lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org

 


_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting at freeswitch.org
http://www.freeswitchsolutions.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://confluence.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users at lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org





 

-- 

Brian West
brian at freeswitch.org

  <http://billing.freeswitch.org/templates/default/img/whmcslogo.png> 

Twitter: @FreeSWITCH , @briankwest
http://www.freeswitchbook.com
http://www.freeswitchcookbook.com

Got Bugs? Report them here <https://freeswitch.org/jira> ! | Reddit: /r/freeswitch <https://www.reddit.com/r/freeswitch> 

T:+19184209001 | F:+19184209002 | M:+1918424WEST (9378)
iNUM:+883 5100 1420 9001 | ISN:410*543 | Skype:briankwest

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-docs/attachments/20150903/ce087396/attachment-0001.html 


Join us at ClueCon 2014 Aug 4-7, 2014
More information about the Freeswitch-docs mailing list