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@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/ <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@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 <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@192.168.1.112 <51@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@192.168.1.112 <51@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@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@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org