Net::SIP::Registrar - Endpoint for registering SIP clients
my $reg = Net::SIP::Registry->new( dispatcher => $dispatcher, min_expires => 10, max_expires => 60, domains => [ 'example.com','example.org' ], );
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.
- new ( %ARGS )
This creates a new registar object, %ARGS can have the following keys:
Net:SIP::Dispatcher object manging the registar. Mandatory.
Maximum expires time accepted. If the client requests a larger expires value it will be capped at max_expires Defaults to 300.
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.
- 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
Fromheeader 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 briefif the request expires time is too small, or
200 Okif 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.
Removes all expired entries from the internal registry. Called whenever the registry information gets updated from sub receive.