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

NAME

       Net::SIP::NATHelper::Server - server for Net::SIP::NATHelper::Client

DESCRIPTION

       This module is a wrapper around Net::SIP::NATHelper::Base and will receive it's
       instructions from Net::SIP::NATHelper::Client using RPC via sockets.

CONSTRUCTOR

       new ( [ HELPER ], @FDS )
           Will create an object which listens on all file descriptors given in FDS for RPC from
           clients.

           If HELPER is given and a Net::SIP::NATHelper::Base object or derived it will be used,
           otherwise the helper will be created.

METHODS

       do_command ( FD )
           Called when FD is available for reading.  Calls accept on FD and reads the RPC packet
           from the resulting file descriptor, executes it and returns result back.

           Currently implemented commands are "allocate","activate" and "close" which will map to
           the local methods allocate_sockets, activate_session and close_session.

           One might redefine or add commands by changing "$self->{commands}".  The key of this
           hash reference is the command name and the value is the callback.

           Unknown commands will be ignored, e.g nothing returned.

       loop
           This will loop over all file descriptors it gets from callbacks in
           Net::SIP::NATHelper::Base and the file descriptors for the RPC sockets.

           When file descriptors gets available for reading it will execute the callbacks, e.g.
           forward the RTP data or call do_command.  In regular intervals it will call expire
           from Net::SIP::NATHelper::Base to expire the RTP sockets and sessions.

       allocate_sockets ( ... )
           Calls allocate_sockets of the local Net::SIP::NATHelper::Base object. Takes and
           returns the same arguments.

       activate_session ( ... )
           Calls activate_session of the local Net::SIP::NATHelper::Base object. Takes the same
           arguments and returns 1 if the session was newly activated, -1 if it was activated
           before and false if activation failed.  Updates callbacks into the event loop.

       close_session ( ... )
           Calls activate_session of the local Net::SIP::NATHelper::Base object. Takes the same
           arguments and returns the number of closed sessions.  Updates callbacks into the event
           loop.

       expire ( ... )
           Calls expire of the local Net::SIP::NATHelper::Base object. Takes the same arguments
           and returns the number of expired sessions.  Updates callbacks into the event loop if
           necessary.

BUGS

       The local event loop should be pluggable, so that other implementations could be used.
       Right now it's a hard coded loop using select.