Net::SIP::Registrar - Endpoint for registering SIP clients
my $reg = Net::SIP::Registrar->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.
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.
423 Interval too brief
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.
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.
"ip:port"
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.
()
From
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.
200 Ok
In case of a successful response it wil also update the internal registry information.
Search for ADDR (which has format proto:user@domain) in the registry. Returns @List of all sip or sips contacts for ADDR.
proto:user@domain
Removes all expired entries from the internal registry. Called whenever the registry information gets updated from sub receive.
To install Net::SIP, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::SIP
CPAN shell
perl -MCPAN -e shell install Net::SIP
For more information on module installation, please visit the detailed CPAN module installation guide.