[OpenSIPS-Users] mi_datagram - UDP is [still] broken?

Bogdan-Andrei Iancu bogdan at voice-system.ro
Sat Dec 12 09:45:54 CET 2009


Hi Alexander,

the mi_datagram is not broken (and never was). you can run a very simple 
test with NC (network commander):
     >  echo -e ":uptime:\n\n"| nc -u 192.168.2.1 5059

About you php code I cannot comment as I'm not a php programmer :)

Regards,
Bogdan

Alexander wrote:
> Hi all!
>
> I try to get data from OpenSIPS via mi_datagram module.
>
> In opensips.cfg I set:
>
> loadmodule "mi_datagram.so"
> modparam("mi_datagram", "socket_name",    "udp:192.168.2.1:5059 
> <http://192.168.2.1:5059>")
> modparam("mi_datagram", "children_count", 3)
>
> Ok, OpenSIPS starts and listens port 5059.
>
> Then I try to get some data with PHP. For example:
>
> $command    = ":uptime:\n\n";
>
> $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
> $ret = "";
> $from = "";
> $port = "";
>
> if ($socket)
> {
> //    socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" 
> => 0, "usec" => 50000));
>
>     socket_sendto($socket, $command, strlen($command), 0, 
> '192.168.2.1', 5059);
>
>     while ((socket_recvfrom($socket, $ret, 10, 0, $from, $port)))
>     {
> //        echo "Received from $from, port $port\n";
>         echo $ret;
>     }
> }
>
> But this code hangs after receiving first 10 bytes. If I set large 
> buffer (65535 bytes instead of 10 bytes), whole reply is received 
> properly.
>
> So, is it my bug in PHP script? Or OpenSIPS doesn't work correctly 
> with UDP? I've read that UDP support in mi_datagram is broken. Is it 
> still true?
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>   


-- 
Bogdan-Andrei Iancu
www.voice-system.ro




More information about the Users mailing list