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

NAME

       Net::SIP::Dropper - drops SIP messages based on callback

SYNOPSIS

           use Net::SIP::Dropper::ByIPPort;
           my $drop_by_ipport = Net::SIP::Dropper::ByIPPort->new(
               database => '/path/to/database.drop',
               methods => [ 'REGISTER', '...', '' ],
               attempts => 10,
               interval => 60,
           );

           use Net::SIP::Dropper::ByField;
           my $drop_by_field = Net::SIP::Dropper::ByField->new(
               methods => [ 'REGISTER', '...', '' ],
               'From' => qr/sip(?:vicious|sscuser)/,
               'User-Agent' => qr/^friendly-scanner$/,
           );

           my $drop_subscribe = sub {
               my ($packet,$leg,$from) = @_;
               # drop all subscribe requests and responses
               return $packet->method eq 'SUBSCRIBE' ? 1:0;
           };

           my $dropper = Net::SIP::Dropper->new(
               cbs => [ $drop_by_ipport, $drop_by_field, $drop_subscribe ]);

           my $chain = Net::SIP::ReceiveChain->new(
               [ $dropper, ... ]
           );

DESCRIPTION

       Drops messages. This means, does no further processing in the Net::SIP chain and does not
       send something back if the incoming message match the settings.

       Some useful droppers are defined in Net::SIP::Dropper::ByIpPort and
       Net::SIP::Dropper::ByField.

CONSTRUCTOR

       new ( ARGS )
           ARGS is a hash with key "cb" or "cbs". "cb" is a single callback to be processed,
           "cbs" is an arrayref with callbacks. If one of the callbacks returns true the message
           will be dropped. If all callbacks return false the message will be forwarded in the
           chain.

           Returns a new dropper object to be used in the chain.