[Freeswitch-users] Fwd: IVR Problem

Anthony Minessale anthony.minessale at gmail.com
Fri Jul 31 08:12:13 PDT 2009


Like I said you set the event lock to true right away when you create the
connection,
Then all your sendmsg events will be queued and processed one at a time
instead of "as received"



On Fri, Jul 31, 2009 at 12:04 AM, Thangappan.M <thangappan143 at gmail.com>wrote:

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


-- 
Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/
Twitter: http://twitter.com/FreeSWITCH_wire

AIM: anthm
MSN:anthony_minessale at hotmail.com <MSN%3Aanthony_minessale at hotmail.com>
GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com<PAYPAL%3Aanthony.minessale at gmail.com>
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888 at conference.freeswitch.org <sip%3A888 at conference.freeswitch.org>
iax:guest at conference.freeswitch.org/888
googletalk:conf+888 at conference.freeswitch.org<googletalk%3Aconf%2B888 at conference.freeswitch.org>
pstn:213-799-1400
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20090731/d63393c8/attachment-0002.html 


More information about the FreeSWITCH-users mailing list