[Freeswitch-users] Problem while playing more than 10 voice files using playback

Michael Jerris mike at jerris.com
Tue Nov 24 22:34:13 PST 2009


"you should use execute_complete events to tell when a command you tried to execute has finished and not poll the channel for a variable to be set because FreeSWITCH is an asynchronous application in the mode you are describing and you can never be sure of the timing."

You are STILL polling for the variable.  If you want help, perhaps you should at least attempt what is being suggested?

Mike

On Nov 25, 2009, at 1:18 AM, Thangappan.M wrote:

> The example script is there in the following link
> http://pastebin.com/f332f2fda
> 
> In the previous post I have attached it. But it was not shown. 
> 
> 2009/11/25 Thangappan.M <thangappan143 at gmail.com>
>  FreeSWITCH version: freeswitch 1.0.4 
>  I am using ESL library 
> I attached the example Perl script which does the same steps that I posted already. ( Sample.pl)
> I supplied  the log , Here I attached the output of the ESL log. (Output.txt)
> 
> Through the softphone(Twinkle) I have given 1,2,4,5,4 as a DTMF digits.
> But in the output I got only 2,4,5,4 ( DTMF 1 is missed)
> 
> Output of Perl code could be like 
> 
> Wait for response time out
> EVENT [COMMAND]
> Wait for response time out
> EVENT [DTMF]
> DTMF digit 2 (2000)
> Wait for inter digit time out
> EVENT [DTMF]
> DTMF digit 4 (2000)
> Wait for inter digit time out
> EVENT [DTMF]
> DTMF digit 5 (2000)
> Wait for inter digit time out
> EVENT [DTMF]
> DTMF digit 4 (2000)
> Wait for inter digit time out
> Buffer: 2454
> BYE
> 
> Why the first digit(1) is missed here?
> In ESL log there is no digit called 1 why?
> Why the COMMAND event is received instead of DTMF?
> How can I get all DTMF digits?
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> On Tue, Nov 24, 2009 at 11:26 AM, Thangappan.M <thangappan143 at gmail.com> wrote:
>  The reason for waiting only for DTMF event is to handle the time outs in the IVR concept like response and inter digit time out.  Using our own logic we 10 voice files in each play back if the voice files are more than 10. Now it works fine. 
> 
> Now the new problem has been raised. The problem is we are filtering only for DTMF events but we are getting COMMAND event . Because of this the DTMF digits are missing at the time .  I am not able to proceed further. We are  in the critical situation. 
> 
> Why this command event is occurring?
> How can I restrict this?
> What are the information it has?
> How can I get all the information in it ? ( If command event has info)
> 
> Help me............
> 
> 
> On Mon, Nov 23, 2009 at 10:04 AM, Thangappan.M <thangappan143 at gmail.com> wrote:
> I am waiting only for DTMF events. That's why I am setting freeswitch variable for knowing whether the playback has done.
> 
> My question is "why this freeswitch variable is not setting properly when I play back more than 10 files using playback_delimiter option?".
> 
> When I play back lesser than ten voice files the variable has been set properly. What could be the reason?
> 
> 
> 
> ---------- Forwarded message ----------
> From: Thangappan.M <thangappan143 at gmail.com>
> Date: Sat, Nov 21, 2009 at 2:52 PM
> Subject: Problem while playing more than 10 voice files using playback
> To: freeswitch-users <freeswitch-users at lists.freeswitch.org>
> 
> 
> Dear all, 
> 
>          I am in the process of implementing IVR using event outbound socket (async mode).
>          I have implemented using Perl language. 
>    
>           I did the following steps:
>                    => Set the playback_delimiter variable 
>                    => Set the playback_sleep_val variable
>                    => Set the event lock as true 
>                     => Set the freeswitch ( my own)  variable as zero 
>                     => Wait in the loop until the variable is been set as zero
>                    =>  Playback the voice files ( Here I combined the voice files with the delimiter value if more than one voice files are there)
>                    => Set the freeswitch(my own) variable as true ( This is used to identify whether the voice files are played
>  successfully).
>                    => Wait in the loop until the variable is been set as one.
>                    => Set the Event lock as false
>  
>                    => Trying to get the DTMF digits ( Have a assurance that  all the voice files are played).
> 
>        The problem is, 
> 
>              The above steps are working fine when the voice file count is lesser than or equal to 10. After the voice files are played only the variable(my own freeswitch) is set. Based on the variable I am doing further things.
>             
>              But when I tried to give the voice files count of more than 10 the variable has been set while starting to play back the first voice file itself . Because of this I am not able to proceed further. 
>  
>   DID I MAKE ANY MISTAKE IN THE ABOVE STEPS?
> 
> NOTE: I also referred mod_file_string documentation. In that they specified 128 files can be used to play back the voice files using playback_delimiter option. 
>  
> Please help me................?
> Thanks in advance.
> 
>          
> -- 
> Regards,
> Thangappan.M
> 
> 
> 
> -- 
> Regards,
> Thangappan.M
> 
> 
> 
> -- 
> Regards,
> Thangappan.M
> 
> 
> 
> -- 
> Regards,
> Thangappan.M
> 
> 
> 
> -- 
> Regards,
> Thangappan.M
> _______________________________________________
> 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20091125/4aad26d9/attachment-0002.html 


More information about the FreeSWITCH-users mailing list