[Freeswitch-users] Re-2: Ruby and ESL help

Diego Viola diego.viola at gmail.com
Sun May 3 14:17:10 PDT 2009


I tried to use ESL::ESLconnection in ruby but I get this.

[diego at localhost ruby]$ ruby test.rb
test.rb:7:in `initialize': Wrong arguments for overloaded method
'ESLconnection.new'. (ArgumentError)
Possible C/C++ prototypes are:
    ESLconnection.new(char const *host, char const *port, char const *password)
    ESLconnection.new(int socket)
        from test.rb:7:in `new'
        from test.rb:7
        from test.rb:5:in `loop'
        from test.rb:5
[diego at localhost ruby]$

I made something like this:

esl = ESL::ESLconnection.new(con)

Where con is the accepted socket... should that work? Or do I have to
specify host/port/password on the ESLconnection?

Thanks,

Diego

On Sun, May 3, 2009 at 5:06 PM, Brian West <brian at freeswitch.org> wrote:
> This is how we do it in perl with ESL... it should be very similar in Ruby.
> You shouldn't have to manually use sendmsg if you tie the fd from the socket
> to ESL like we do in perl.
> /b
>
> require ESL;
> use IO::Socket::INET;
> my $ip = "127.0.0.1";
> my $sock = new IO::Socket::INET ( LocalHost => $ip,  LocalPort => '8040',
>  Proto => 'tcp',  Listen => 1,  Reuse => 1 );
> die "Could not create socket: $!\n" unless $sock;
> for(;;) {
>   my $new_sock = $sock->accept();
>   my $pid = fork();
>   if ($pid) {
>     close($new_sock);
>     next;
>   }
>   my $host = $new_sock->sockhost();
>   my $fd = fileno($new_sock);
>
>   my $con = new ESL::ESLconnection($fd);
>   my $info = $con->getInfo();
>   print $info->serialize();
>   my $uuid = $info->getHeader("unique-id");
>   $con->execute("answer", "", $uuid);
>   $con->execute("playback", "/ram/swimp.raw", $uuid);
>   close($new_sock);
> }
>
>
> On May 3, 2009, at 4:00 PM, Diego Viola wrote:
>
> Yep, it works Guido.
>
> require 'socket'
>
> server = TCPServer.new(8084)
> loop do
>        con = server.accept
>        con.puts "connect\n\n"
>        con.puts "sendmsg\ncall-command: execute\nexecute-app-name:
> answer\n\n"
>        con.puts "sendmsg\ncall-command: execute\nexecute-app-name:
> playback\nexecute-app-arg: tone_stream://%(10000,0,350,440)\n\n"
> end
>
> Thanks for the tip =D
>
> Brian West
> brian at freeswitch.org
> -- Meet us at ClueCon!  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
>
>



More information about the Freeswitch-users mailing list