Re: [Freeswitch-users] How to make a call back
Sent from my iPhone On Aug 27, 2009, at 10:01 PM, lakshmanan ganapathy <lakindia89@gmail.com> wrote:
No. In the dial plan I said, application="perl" data="The perl script". I also checked $session->execute("bridge","user/1010"). This is working fine. But originate is not working as I expected.
I think you might be confusing Dialplan apps with API commands. The $session object represents an existing channel and therefore it uses Dialplan apps. Originate is an API, that is, it is a command that you type at the CLI. You need an API object to use originate from a script: my $api = new $freeswitch::API(); my $res = $api->executeString("originate user/1010 &bridge(user/1000); What kind of application are you developing? I'm curious why you need an originate to create a whole new call. -MC
On Thu, Aug 27, 2009 at 9:46 PM, Michael Collins <msc@freeswitch.org> wrote:
On Wed, Aug 26, 2009 at 9:38 PM, lakshmanan <lakindia89@gmail.com> wrote:
When I give the following from the command line it calls to 1010 extension and once answered, it calls to 1000 and bridge the connection. originate user/1010 &bridge(user/1000) But I want to do this in perl. So I have given as follows $session->originate($session,"user/1010 &bridge user/ 1000"); But it is not working. It says "user/1010 &bridge user/1000 is invalid user". How to do this in perl. pls help.
Are you calling this perl script from the CLI? If so you won't have the $session object because a channel does not exist for a simple API call. -MC
_______________________________________________ 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
_______________________________________________ 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
The following is the requirement. Let say I have 3 extensions in my freeswitch. (777,1000,1010). When 1000 made a call to 777, I'll execute a perl application. In that, I'll get the DTMF (1010) from the caller. Then I'll make a call to the entered digit and I've to bridge 1000 and 1010. This is what my requirement. I also tried the following. #!/usr/bin/perl use strict; use freeswitch; our $session; my $sess=new freeswitch::Session("user/1000"); $sess->answer(); if($sess->ready()) { freeswitch::consoleLog("INFO","Session is answered\n"); $sess->execute("playback","/usr/local/freeswitch/sounds/en/us/callie/time/8000/day-1.wav"); my $dtmf = $sess->getDigits(4,"", 5000); freeswitch::consoleLog("INFO","I received $dtmf\n"); my $new_sess=new freeswitch::Session("user/$dtmf"); $new_sess->answer(); if($new_sess->ready()) { $session->bridge($sess,$new_sess); } } In the above program I got usage error on $session->bridge. mercutioviz wrote:
Sent from my iPhone
On Aug 27, 2009, at 10:01 PM, lakshmanan ganapathy <lakindia89@gmail.com> wrote:
No. In the dial plan I said, application="perl" data="The perl script". I also checked $session->execute("bridge","user/1010"). This is working fine. But originate is not working as I expected.
I think you might be confusing Dialplan apps with API commands. The $session object represents an existing channel and therefore it uses Dialplan apps. Originate is an API, that is, it is a command that you type at the CLI.
You need an API object to use originate from a script: my $api = new $freeswitch::API(); my $res = $api->executeString("originate user/1010 &bridge(user/1000);
What kind of application are you developing? I'm curious why you need an originate to create a whole new call.
-MC
On Thu, Aug 27, 2009 at 9:46 PM, Michael Collins <msc@freeswitch.org> wrote:
On Wed, Aug 26, 2009 at 9:38 PM, lakshmanan <lakindia89@gmail.com> wrote:
When I give the following from the command line it calls to 1010 extension and once answered, it calls to 1000 and bridge the connection. originate user/1010 &bridge(user/1000) But I want to do this in perl. So I have given as follows $session->originate($session,"user/1010 &bridge user/ 1000"); But it is not working. It says "user/1010 &bridge user/1000 is invalid user". How to do this in perl. pls help.
Are you calling this perl script from the CLI? If so you won't have the $session object because a channel does not exist for a simple API call. -MC
_______________________________________________ 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
_______________________________________________ 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
_______________________________________________ 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
-- View this message in context: http://www.nabble.com/How-to-make-a-call-back-tp25166083p25184832.html Sent from the Freeswitch-users mailing list archive at Nabble.com.
Hey I'm sorry. I've solved this as follows my $sess=new freeswitch::Session("user/1000"); $sess->answer(); #$sess->waitForAnswer($session); if($sess->ready()) { freeswitch::consoleLog("INFO","Session is answered\n"); $sess->execute("playback","/usr/local/freeswitch/sounds/en/us/callie/time/8000/day-1.wav"); my $dtmf = $sess->getDigits(4,"", 5000); freeswitch::consoleLog("INFO","I received $dtmf\n"); $sess->execute("bridge","user/$dtmf"); } lakshmanan wrote:
I also tried the following. #!/usr/bin/perl use strict; use freeswitch; our $session; my $sess=new freeswitch::Session("user/1000"); $sess->answer(); if($sess->ready()) { freeswitch::consoleLog("INFO","Session is answered\n");
$sess->execute("playback","/usr/local/freeswitch/sounds/en/us/callie/time/8000/day-1.wav"); my $dtmf = $sess->getDigits(4,"", 5000); freeswitch::consoleLog("INFO","I received $dtmf\n"); my $new_sess=new freeswitch::Session("user/$dtmf"); $new_sess->answer(); if($new_sess->ready()) { $session->bridge($sess,$new_sess); } }
In the above program I got usage error on $session->bridge.
mercutioviz wrote:
Sent from my iPhone
On Aug 27, 2009, at 10:01 PM, lakshmanan ganapathy <lakindia89@gmail.com> wrote:
No. In the dial plan I said, application="perl" data="The perl script". I also checked $session->execute("bridge","user/1010"). This is working fine. But originate is not working as I expected.
I think you might be confusing Dialplan apps with API commands. The $session object represents an existing channel and therefore it uses Dialplan apps. Originate is an API, that is, it is a command that you type at the CLI.
You need an API object to use originate from a script: my $api = new $freeswitch::API(); my $res = $api->executeString("originate user/1010 &bridge(user/1000);
What kind of application are you developing? I'm curious why you need an originate to create a whole new call.
-MC
On Thu, Aug 27, 2009 at 9:46 PM, Michael Collins <msc@freeswitch.org> wrote:
On Wed, Aug 26, 2009 at 9:38 PM, lakshmanan <lakindia89@gmail.com> wrote:
When I give the following from the command line it calls to 1010 extension and once answered, it calls to 1000 and bridge the connection. originate user/1010 &bridge(user/1000) But I want to do this in perl. So I have given as follows $session->originate($session,"user/1010 &bridge user/ 1000"); But it is not working. It says "user/1010 &bridge user/1000 is invalid user". How to do this in perl. pls help.
Are you calling this perl script from the CLI? If so you won't have the $session object because a channel does not exist for a simple API call. -MC
_______________________________________________ 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
_______________________________________________ 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
_______________________________________________ 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
-- View this message in context: http://www.nabble.com/How-to-make-a-call-back-tp25166083p25185052.html Sent from the Freeswitch-users mailing list archive at Nabble.com.
participants (2)
-
lakshmanan
-
Michael S Collins