<br>If I missed out the async mode from the dial plan I am not able to get the events from it.<br><br>Here is my Perl script.<br><br># Create a conenction with Event socket library.<br>my $conn = new ESL::ESLconnection($fd);<br>
<br># Getting the connection informations and values of the variables.<br>my $info = $conn->getInfo();<br><br># Getting the caller id and print the statement.<br>my $caller_id =$info->getHeader("caller-caller-id-number");<br>
printf "Connected from %s\n", $caller_id;<br><br># Receive the events from only in this switch.<br>$conn->sendRecv("myevents");<br><br># Answer the call.<br> $conn->execute("answer");<br>
<br># playback the welcome message.<br> $conn->execute("playback",$sound_path."ivr/ivr-welcome_to_freeswitch.wav");<br> $conn->execute("playback",$sound_path."ivr/ivr-this_ivr_will_let_you_test_features.wav");<br>
$conn->execute("playback",$sound_path."ivr/ivr-you_may_exit_by_hanging_up.wav");<br><br>$conn->execute("sleep", "1000");<br><br># Until the connection get disconnected<br>
while($conn->connected()){<br><br> # Receive the event<br> my $event = $conn->recvEvent();<br><br> # Check the event is received<br> if($event){<br> # Get the event name and print it.<br>
my $name = $event->getHeader("event-name");<br> print "EVENT:[$name]\n";<br><br> # If the event name is DTMF then print the enterted digit.<br>
if($name eq 'DTMF'){<br> my $digit = $event->getHeader("dtmf-digit");<br> my $duration = $event->getHeader("dtmf-duration");<br>
# And duration.<br> print "DTMF digit $digit ($duration)\n";<br> }<br> }<br> }<br><br><br>If I specified data field in the dial plan as <<a href="http://127.0.0.1:5000">127.0.0.1:5000</a> full> All the voice files are played in order.But I am not able to get the EVENTS in the while loop.<br>
<br>If I specified data field in the dial plan as <<a href="http://127.0.0.1:5000">127.0.0.1:5000</a> async full>.The voice files are not played in order.But I am able to get the events in the while loop.<br><br>I need to receive EVENS.Then I check the event name if it is DTMF based on the DTMF input I processed that option.<br>
<br>In the case of $conn->setEventLock("true") , where can I reset this value to false.<br><br>Please Help Me.......<br><br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Thangappan.M</b> <span dir="ltr"><<a href="mailto:thangappan143@gmail.com">thangappan143@gmail.com</a>></span><br>
Date: Thu, Jul 30, 2009 at 12:42 PM<br>Subject: IVR Problem<br>To: freeswitch-users <<a href="mailto:freeswitch-users@lists.freeswitch.org">freeswitch-users@lists.freeswitch.org</a>><br><br><br>Dear all, <br><br> I am in the process of implementing an IVR using event outbound socket. In the dial plan I used the following statement.<br>
<action application="socket" data="<a href="http://127.0.0.1:5000" target="_blank">127.0.0.1:5000</a> async full"/><br>
<br> I implemented a Perl script which is listening on the dial plan specified IP address and PORT ( In this case 127.0.0.1 and 5000). Whenever the caller is calling 5000 I executed the above dial plan. <br>
Before dialing to the number I executed the Perl script.<br><br> In my Perl script, first I did the following steps.<br> <br> * Accepting the client connection <br>
* Fork a process<br> * Connect with Event Socket Library <br> * Finally send and receive the events to that channel.<br> <br> In the sending part, at first I am sending ($conn->sendRecv("myevents") ) myevents to the freeswitch.It means receive the events from this channel only.<br>
<br> I answer for that call ( $conn->execute("answer") )<br><br> Then I play back three files as<br><br> $conn->execute("playback",$sound_path."ivr/ivr-welcome_to_freeswitch.wav");<br>
$conn->execute("playback",$sound_path."ivr/ivr-this_ivr_will_let_you_test_features.wav");<br> $conn->execute("playback",$sound_path."ivr/ivr-you_may_exit_by_hanging_up.wav");<br>
<br>Here the sound path is /usr/local/freeswitch/sounds/en/us/callie/<br><br> But it is not play backed the sound in order. Why?<br> I know that it is a problem in mode(async, full). Can you please clarify these two keywords?<br>
I have studied from the wiki page. But I was not able to get it.<br><br> I also specified the lock mode after every play back as<br> $conn->SetEventBlock("true");<br><br>But is not working. Could you please solve this issue?<br>
<br> <br><br> <br><br><br clear="all"><br>-- <br>Regards,<br><font color="#888888">Thangappan.M<br>
</font></div><br><br clear="all"><br>-- <br>Regards,<br>Thangappan.M<br>