Net::RTP - Send and receive RTP packets (RFC3550)
use Net::RTP; my $rtp = new Net::RTP( LocalPort=>5170, LocalAddr=>'18.104.22.168' ); my $packet = $rtp->recv(); print "Payload type: ".$packet->payload_type()."\n";
Net::RTP module subclasses IO::Socket::Multicast6 to enable you to manipulate multicast groups. The multicast additions are optional, so you may also send and recieve unicast packets.
- $rtp = new Net::RTP( [LocalAdrr=>$addr, LocalPort=>$port,...] )
The new() method is the constructor for the Net::RTP class. It takes the same arguments as IO::Socket::INET, however the Proto argument defaults to "udp", which is more appropriate for RTP.
The Net::RTP super-class used will depend on what is available on your system it will try and use one of the following (in order of preference) :
IO::Socket::Multicast6 (IPv4 and IPv6 unicast and multicast) IO::Socket::Multicast (IPv4 unicast and multicast) IO::Socket::INET6 (IPv4 and IPv6 unicast) IO::Socket::INET (IPv4 unicast)
If LocalAddr looks like a multicast address, then Net::RTP will automatically try and join that multicast group for you.
- my $packet = $rtp->recv( [$size] )
Blocks and waits for an RTP packet to arrive on the UDP socket. The read
$sizedefaults to 2048 which is usually big enough to read an entire RTP packet (as it is advisable that packets are less than the Ethernet MTU).
Net::RTP::Packetobject or undef if there is a problem.
- $rtp->send( $packet )
Send a Net::RTP::Packet from out of the RTP socket. The PeerPort and PeerAddr should be defined in order to send packets. Returns the number of bytes sent, or the undefined value if there is an error.
Returns the name of the super-class that Net::RTP chose to use.
Please report any bugs or feature requests to
firstname.lastname@example.org, or through the web interface at http://rt.cpan.org. I will be notified, and then you will automatically be notified of progress on your bug as I make changes.
Nicholas J Humfrey, email@example.com
COPYRIGHT AND LICENSE
Copyright (C) 2006 University of Southampton
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.005 or, at your option, any later version of Perl 5 you may have available.