---
name: "Net::SIP::Redirect"
section: "3pm"
platform: "linux"
package: "libnet-sip-perl"
version: "0.838-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Net::SIP::Redirect"
---

# Net::SIP::Redirect(3pm)

Send redirect to Requests based on lookup at a registrar

## NAME

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

## SYNOPSIS

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

## DESCRIPTION

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

## CONSTRUCTOR

- new ( %ARGS )

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

  - dispatcher

    Net::SIP::Dispatcher object managing the registar. Mandatory.

  - registrar

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

## METHODS

- receive ( PACKET,LEG,FROM )

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

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

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