NAME

Net::SAP - Session Announcement Protocol (rfc2974)

SYNOPSIS

use Net::SAP;

my $sap = Net::SAP->new( 'ipv6-global' );

my $packet = $sap->receive();

$sap->close();

DESCRIPTION

Net::SAP allows receiving and sending of SAP (RFC2974) multicast packets over IPv4 and IPv6.

METHODS

$sap = Net::SAP->new( $group )

The new() method is the constructor for the Net::SAP class. You must specify the SAP multicast group you want to join:

ipv4
ipv6-node
ipv6-link
ipv6-site
ipv6-org
ipv6-global

Alternatively you may pass the address of the multicast group directly. When the Net::SAP object is created, it joins the multicast group, ready to start receiving or sending packets.

$packet = $sap->receive()

This method blocks until a valid SAP packet has been received. The packet is parsed, decompressed and returned as a Net::SAP::Packet object.

$sap->send( $data )

This method sends out SAP packet on the multicast group that the Net::SAP object to bound to. The $data parameter can either be a Net::SAP::Packet object, a Net::SDP object or raw SDP data.

Passing a Net::SAP::Packet object gives the greatest control over what is sent. Otherwise default values will be used.

If no origin_address has been set, then it is set to the IP address of the first network interface.

Packets greater than 1024 bytes will not be sent. This method returns 0 if packet was sent successfully.

$group = $sap->group()

Returns the address of the multicast group that the socket is bound to.

$sap->close()

Leave the SAP multicast group and close the socket.

TODO

add method of choosing the multicast interface to use
ensure that only public v4 addresses are used as origin
Packet decryption and validation
Improve test script ?
Move some XS functions to Net::SAP::Packet ?

SEE ALSO

Net::SAP::Packet, Net::SDP, perl(1)

http://www.ietf.org/rfc/rfc2974.txt

BUGS

Please report any bugs or feature requests to bug-net-sap@rt.cpan.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.

AUTHOR

Nicholas Humfrey, njh@ecs.soton.ac.uk

COPYRIGHT AND LICENSE

Copyright (C) 2004 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.