The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.