Revision history for Net::SIP

  - Net::SIP::Simple: handle OPTIONS requests. These are for 
    instance used by Asterisk to determine if the registered 
    party accepts incoming calls.
  - fix rt#29153 in ($1 from prev regex
    used after call of user function, which could change it)
  - Endpoint::new_response - make sure that 2xx responses to
    INVITE carry a contact header

  - Net::SIP::Registrar checks on non-REGISTER requests if the
    target it registered with itself and then rewrites the URI in
    the packet. This can be used for a combined Registar+Proxy,
    see samples/
  - samples/invite_and_*.pl have now option -L|--leg to specify
    a local address

  - make it usable for perl5.9, tested with 5.9.5

  - Option cb_preliminary for Simple::Call:reinvite to specify
    callback which will be triggered when preliminary response
    is received
    more parameter for cb_create in Simple::listen, so that
    it can create a response (like 180 Ringing) to the peer
    see documentation and the adapted t/02_listen_and_invite.t

  - make sure that max-forwards is added to every Request from the
    endpoint and that all INVITE have a contact header because these
    are mandatory according to RFC
  - invoke 'filter' callback in Net::SIP::Simple::listen with the
    Request object as an additional argument, cb_create callback
    in listen needs to return TRUE or the call will be closed
    !!!! Warning: this might break code which did not return TRUE
    from cb_create !!!!!

  - - make sure that nc-count is send when authorizing
    and qop was set. This is required according to rfc2617

  -, - support 'opaque' field in digest
    authorization (when authorizing or when requesting authorization)

  - - fix regex for IP4 which did not include all IPv4 addr

  - small fixes to SDP
  - added concept of chains, e.g. put an Authorize object in
    front of Registrar inside a ReceiveChain and all REGISTER
    requests will be authorized,
    see Net::SIP::{Authorize,ReceiveChain}
  - StatelessProxy can no longer have an internal Registrar.
    use ReceiveChain to put a Registrar in front of the proxy
  - new test t/ to test Authorize 
    and ReceiveChain
  - fix Request::authorize
  - make adding commands to NATHelper::Server easier
  - add user params for NATHelper::Session during activate_session
  - SDP: make sure that IP4/IP6 is valid IP
  - small fixes

  - fix memleak in NATHelper::Base
  - support for derived NATHelper::Base in NATHelper::Server 
  - update docu for NATHelper::Base::expire

  - enforce perl5.8 and prerequisite Net::DNS in Makefile.PL
  - NATHelper::Base - more controling of resource usage with
    max_sockets and max_sockets_in_group and/or by redefining

  - new sample samples/ for 3rd party call control
  - small fixes

  - enhancements on tests, new tests for reinvite and call on hold
  - lots of bugfixes: re-invites, NAT, call on hold, branch tag
    on via and 'tag' on to|from in responses, max-forwards handling,
    response caching in dispatcher....
  - set route from record-route in responses, use route header
    in dispatching outgoing requests
  - early loop detection for outgoing packets
  - new param call_on_hold for Net::Simple::Call to set call on
    hold on reinvite...

  - NATHelper::* changes in the return values of expire,
    close_session, activate_session to aid logging of
    sessions (see updated doc)
  - NATHelper::Local has smarter _update_callbacks
  - bugfixes, especially on Net::Simple regarding handling 
    of re-invites in existing call
  - new test t/06_call_with_reinvite.t

  - added documentation for Net::SIP::NATHelper::*
  - updated doc for Net::SIP::StatelessProxy regarding NAT
  - added HOWTO with some Q+A
  - added COPYRIGHT
  - new method 'method' in Net::SIP::Response
  - small bugfixes

  - lots of bugfixes
  - removed leg2proxy and domain2leg from Net::SIP::Dispatcher
    again because they do not fit into concept, see 
	bin/ how to achieve similar things
  - lot of bugfixes, changes and enhancement on StatelessProxy
  - Net::SIP can now export useful things, see doc
  - a lot of enhancements for NAT, implementation of local
    (inside process) and remote NAT helpers which forward
	RTP data
  - Net::SIP::Dispatcher: lookup for A an SRV records now in
    seperate, callback oriented method (which are not asynchronous
	yet, but have an asynchronous interface)
  - moved real world usable programs from samples/ to bin/
  - more tests, samples/ and bins/

  - various bugfixes
  - limit Max-Forwards header to 70 while forwarding packets
    for security reasons (to avoid bad clients which will set
    it to something very high and then try to force loop)
  - do not add Record-Route header to REGISTER requests
  - major changes and enhancements on Net::SIP::StatelessProxy
  - rename Net::SIP::Dispatcher::Eventloop::addTimer to add_timer
    so that it is the same name like in the other modules
  - Net::SIP::Simple: way to add explicit Route headers#
  - new package Net::SIP::NATHelper do aid in the writing of 
    SIP proxies which do NAT (no documentation yet)
  - support for debug levels in Net::SIP::Debug
    sample scripts support various debug levels, see doc to
    Net::SIP::Debug for meaning of different levels
  - samples/ as sample implementation for
    slightly complex stateless proxy (not fully tested yet)
  - new function sip_uri2parts in Net::SIP::Util
  - ways to specify custom headers in Net::SIP::Simple using
    option 'sip_header'
  - new keys domain2leg and leg2proxy in Net::SIP::Dispatcher
    which influence routing
  - new method resolve_uri in Net::SIP::Dispatcher to asnychronously
    resolve URI (was __resolve_uri, but now public with slightly
    different interface)
  - new test 03_forward_stateless which tests parts of routing
    for stateless proxy

  - forgot to include samples to MANIFEST, this is fixed now
    so that they get included into the distribution

  - samples/ as a sample implementation
    of an answer machine
  - new methods peer in Net::SIP::Endpoint::Context and
    get_peer in Net::SIP::Simple::Call
  - fix inactivity timeout for media_recv_send in Net::SIP::Simple::RTP
  - media_send_recv, media_recv_echo in Net::SIP::Simple::RTP can use 
    callback for read/write data instead of filenames

  - samples/ as new sample client
    which can invite and send multiple voice file
    to peer (using re-invites)
  - various small bug fixes

  - samples/ as new sample client
    which can invite and record a message
  - various small features and bug fixes

0.1 - first public version