[Freeswitch-users] Httapi: getting digits in playback

Denis Gasparin denis.gasparin at edistar.com
Thu Aug 15 13:25:08 MSD 2013


Hi. 


The problem seems definetely due to bind_digit_action (used by <bind> tag of httapi). 
I tried to execute the "play_and_get_digits" dialplan application in xml returned to freeswitch and reading a channel var with stored digits and all is working fine. 


This is the working xml: 



<document type="text/freeswitch-httapi"> 
<work> 
<execute application="play_and_get_digits" data="1 4 1 5000 # ivr/ivr-please_enter_the_number_where_we_can_reach_you.wav '' myChannelVar \d+" /> 
<getVariable name=" myChannelVar "/> 
</work> 
</document> 


This is not the first time I have problem with bind_digit_action. I tried the same configuration on different linux distributions (Sles 11.1 and Centos 5.9) and mac os x with the same results: bind_digit_action sometimes works sometimes not. 


A question for Freeswitch developers: why has been bind_digit_action used in place of switch_play_and_get_digits for developing httapi? 
Lua mod uses switch_play_and_get_digits and has a more predictable and stable behaviour than httapi. 
I tried successfully to make a patch for httapi in order to use play_and_get_digits. If useful I can post it to jira. 


Thank you in advance 
Denis Gasparin 



----- Messaggio originale -----


Da: "Denis Gasparin" <denis.gasparin at edistar.com> 
A: "FreeSWITCH Users Help" <freeswitch-users at lists.freeswitch.org> 
Inviato: Mercoledì, 14 agosto 2013 18:49:03 
Oggetto: Httapi: getting digits in playback 


Hi. 


After playback I ask to the user to digit a number between 1 and 9999 with or without terminating the input with '#'. 


The first httapi xml I tried was the following: 



<document type="text/freeswitch-httapi"> 
<work> 
<playback file="ivr/please_enter_number_between_1_9999.wav" digit-timeout="5000" name="user_input" terminators="#"> 
<bind>~\d{1,4}#{0,1}</bind> 
</playback> 
</work> 
</document> 


Freeswitch calls my action as soon as the user input the first digit. 
So I modified the xml in order to use two bindings: 



<document type="text/freeswitch-httapi"> 
<work> 
<playback file="ivr/please_enter_number_between_1_9999.wav" digit-timeout="5000" name="user_input" terminators="#"> 
<bind>~\d{1,3}#{0,1}</bind> 
<bind>~\d{4}#{0,1}</bind> 
</playback> 
</work> 
</document> 


Using this xml I get the user input only if the user press "#" after inserting the number. 
If the user presses 123 and then waits for timeout, Freeswitch doesn't send any digits to my action (but sometimes it does). Why? 


>From the logs I see that the digits are always received from Freeswitch. 


Thank you in advance for your help. 
Denis Gasparin 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20130815/fb43571d/attachment-0001.html 


Join us at ClueCon 2013 Aug 6-8, 2013
More information about the FreeSWITCH-users mailing list