[Freeswitch-users] Re-2: Ruby and ESL help
Diego Viola
diego.viola at gmail.com
Sun May 3 14:26:13 PDT 2009
Do I need to do something with the file descriptor or fileno first?
Sorry, I don't know perl.
Diego
On Sun, May 3, 2009 at 5:17 PM, Diego Viola <diego.viola at gmail.com> wrote:
> 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