NAME
Net::SIP::Registrar - Endpoint for registering SIP clients
SYNOPSIS
my $reg = Net::SIP::Registry->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.
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 theFrom
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, or200 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.
- expire
-
Removes all expired entries from the internal registry. Called whenever the registry information gets updated from sub receive.