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-local
ipv4-org
ipv4-global
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.

$ttl = $sap->ttl( [$value] )

Gets or sets the TTL of outgoing packets.

$sap->close()

Leave the SAP multicast group and close the socket.

TODO

add automatic detection of IPv6 origin address
add method of choosing the network interface to use for multicast
Packet decryption and validation

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 J Humfrey, njh@cpan.org

COPYRIGHT AND LICENSE

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