[Freeswitch-users] PHP ESL & Event Socket Outbound
Mike Raistrick
michael.raistrick at googlemail.com
Thu Jul 11 14:32:05 MSD 2013
Hi,
This works for me with PHP and outbound socket.
Dialplan: *** sends connection to IP A.B.C.D port 8084
<extension name="test">
<condition field="destination_number" expression="^\*\*\*$">
<action application="socket" data="A.B.C.D:8084"/>
</condition>
</extension>
xinetd picks up the connection and sends to the script. xinetd config is:
*service unlisted
{
user = whoever
disable = no
type = UNLISTED
socket_type = stream
protocol = tcp
wait = no
server = /home/test/test.php
port = 8084
server_args = HOST
}
*
The php script picks it up from there
#!/usr/bin/php
<?php
require_once('ESL.php');
$esl = new ESLconnection(0);
$ans= $esl->execute('answer');
$subscribe = $esl->sendRecv('myevents');
$subscribe = $esl->sendRecv('linger'); # Without this the channel closes
before we receive the events
$res = $esl->execute('sleep', '1000');
$context = $esl->getInfo()->getHeader('Caller-Context');
$curr_user = $esl->getInfo()->getHeader('variable_sip_from_user');
$curr_host = $esl->getInfo()->getHeader('variable_sip_from_host');
///etc etc.
Hope that helps
Mike
On Wed, Jul 10, 2013 at 11:23 AM, Milos Jovanovic <
development.milos at gmail.com> wrote:
> Hello,
>
> I am trying to create PHP application that will be receiving information
> about each call from freeswitch and send commands to control freeswitch.
>
> I found an example at https://wiki.freeswitch.org/wiki/PHP_ESL#ivrd BUT
> unfortunately they do not explain how I can retrieve information from
> freeswitch (so I can do the routing in PHP).
>
> I guess I should use PHP ESL but the documentation is pretty bad so if
> someone has some working example, I'd appreciate it.
>
> I tried to read from stdin this way:
>
>
> *#!/usr/bin/php -q
>
> <?php
>
> // set a couple of things so we dont kill the system
> ob_implicit_flush(true);
> set_time_limit(30);
>
> // Open stdin so we can read the data in
> $in = fopen("php://stdin", "r");
>
> // Connect
> echo "connect\n\n";
>
> // READ DATA
> $text = fgets($in);
> file_put_contents('/usr/local/freeswitch/scripts/socketlog.txt' ,$text,
> FILE_APPEND);
>
> // Answer
> echo "sendmsg\n";
> echo "call-command: execute\n";
> echo "execute-app-name: answer\n\n";
>
> // Play a prompt
> echo "sendmsg\n";
> echo "call-command: execute\n";
> echo "execute-app-name: playback\n";
> echo "execute-app-arg:
> /usr/local/freeswitch/sounds/en/us/callie/ivr/8000/ivr-welcome_to_freeswitch.wav\n\n";
>
> // Wait
> sleep(5);
>
> // Hangup
> echo "sendmsg\n";
> echo "call-command: hangup\n\n";
>
> fclose($in);
>
> ?>*
>
> *Unfortunately, everything I get as a result in my log file is:*
>
> *Event-Name: CHANNEL_DATA*
>
>
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
>
>
>
>
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://wiki.freeswitch.org
> http://www.cluecon.com
>
> 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/20130711/da6692e9/attachment.html
Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-users
mailing list