Provided by: libnet-sip-perl_0.687-1_all bug

NAME

       Net::SIP::Registrar - Endpoint for registering SIP clients

SYNOPSIS

         my $reg = Net::SIP::Registrar->new(
               dispatcher => $dispatcher,
               min_expires => 10,
               max_expires => 60,
               domains => [ 'example.com','example.org' ],
         );

DESCRIPTION

       This package implements a simple SIP registrar. In the current implementation registry
       information are only kept in memory, e.g. they are not preserved over restarts.

       The implementation itself does not checking if the UAC is authorized to register the given
       address. This can be done with using an appropriate Authorize Module inside a ReceiveChain
       in front of the registrar.

CONSTRUCTOR

       new ( %ARGS )
           This creates a new registar object, %ARGS can have the following keys:

           dispatcher
                   Net::SIP::Dispatcher object manging the registar. Mandatory.

           max_expires
                   Maximum expires time accepted. If the client requests a larger expires value
                   it will be capped at max_expires Defaults to 300.

           min_expires
                   Minimum expires value. If the client requests a smaller value the registrar
                   will return a response of "423 Interval too brief".  Defaults to 30.

           domains or domain
                   Either string or reference to list of strings containing the names of the
                   domains the registrar is responsable for. If not given the registrar accepts
                   everything.

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 not a REGISTER request or if it is not
           responsable for the domain given in the "From" heeader of the REGISTER request.

           If it is responsable for the packet it will create a response and return the code of
           the response. Responses are either "423 Interval too brief" if the request expires
           time is too small, or "200 Ok" if the expires time is 0 (e.g. the client should be
           unregistered) or greater or equal min_expires.

           In case of a successful response it wil also update the internal registry information.

       query ( ADDR )
           Search for ADDR (which has format "proto:user@domain") in the registry. Returns @List
           of all sip or sips contacts for ADDR.

       expire
           Removes all expired entries from the internal registry.  Called whenever the registry
           information gets updated from sub receive.