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

=head1 NAME

Net::SIP::Redirect - Send redirect to Requests based on lookup at a registrar

=head1 SYNOPSIS

  my $reg = Net::SIP::Registrar->new(...);
  my $redir = Net::SIP::Redirect(
	dispatcher => $dispatcher,
	registrar => $reg,
  );

=head1 DESCRIPTION

This package implements a simple redirection of Requests using the information
provided by a registrar.

=head1 CONSTRUCTOR

=over 4

=item new ( %ARGS )

This creates a new redirect object, %ARGS can have the following keys:

=over 8

=item dispatcher

L<Net::SIP::Dispatcher> object managing the registar. Mandatory.

=item registrar

Registrar object. This is an object like a L<Net::SIP::Registrar>, which
has a C<query(address)> method which returns a list of contacts.

=back

=back

=head1 METHODS

=over 4

=item receive ( PACKET,LEG,FROM )

PACKET is the incoming packet,
LEG is the L<Net::SIP::Leg> where the packet arrived and FROM
is the C<< "ip:port" >> of the sender. Responses will be send
back to the sender through the same leg.

Called from the managing L<Net::SIP::Dispatcher> object if a new
packet arrives. Will return C<()> and ignore the packet if it's
an REGISTER request.

For Requests it will query the registrar and return either
C<< 302 Moved Temporarily >> with the list of contacts or
C<< 404 Not Found >> if the address is not registered.



=back