Changes from version 1.1.0 to 1.2.0
-----------------------------------

- Increased to 50 the number of maximum generated calls by one instance of
  rtpgenerator.py
- Fixed regular expresion to correctly identify older Grandstream ATA
  adaptors in the web page showing media sessions.
- Write call duration in any situation. It will be overwritten later by
  ser if everything goes well with the call, but if not we still have the
  call duration.
- Made the dispatcher to save the existing sessions on exit and restore them
  (if available) on start. This avoids problems if the dispatcher is restarted
  while there are running media sessions.
- Media type information is now received from the ser module (it is
  problematic to be determined from the payload type).
- If updating an accounting record doesn't modify anything, retry the query
  with to_tag='n/a' and call_duration=0. This will update accounting entries
  added by a failed request (such as a canceled one or one that did timeout)
- Added some more IP ranges to the non-public network classes
- Only allow 0.0.0.0 to put a call on hold after the session was started (both
  parties have sent their contact information with an INVITE and an OK).
  This fixes some Xten weirdness where the phone had sent 0.0.0.0 as the contact
  IP address from the first INVITE request.
- Added ability to add media streams to a conversation on the fly (used mostly
  by Video SIP clients).
- Correctly handle a RTP payload of 13 (Confort noise). This fixes some cases
  where for certain phones the codec for the call was shown as Unknown(13)
  instead of the real codec (seen with Cisco ATA 186).


Changes from version 1.0.1 to 1.1.0
-----------------------------------

- Renamed flags= to info= in the commands sent by mediaproxy.so
- Pass more information from mediaproxy.so to allow better statistics
  and unambiguous update of log record in mysql
- Use from and to tags when updating accounting info to avoid
  updating wrong records
- Show From/To and User-Agent in statistics web page
- Log User-Agent, codecs and stream types into mysql
- Display payload if codec is Unknown or Dynamic
- Handle network timeouts in dispatcher when doing DNS lookups
- Handle case with clients using public IPs behind NAT
- Reduced DNS timeout from 30 seconds to 7 seconds
- The dispatcher will forward calls for which none of the From/To domains are
  local to the default mediaproxy. The decision if to handle these calls is
  one that SER should make, not the dispatcher. The dispatcher should handle
  any call for which it was called. (This fixes the case when a call from
  outside is directed to a local user, but that user is mapped with ENUM to
  a remote address. After the ENUM mapping both From/Destination are remote
  but if SER decides to handle the call, so should mediaproxy).
- Changed session timer to be more precise (closer to the 1 second period)
- Simplified and made more flexible the MySQL accounting
- Simplified code in the RTPSession class (used properties for cleaner code)
- Log call time if call did timeout (to avoid not having the call duration in
  the accounting records when a BYE is never sent)
- Compute a 1 second average of traffic in mediaproxy (more reliable than the
  trivial bytes/time computed by the statistics script/web page)
- Simplified some code by using properties
- Added new 'summary' command that returns the number of sessions and
  the total traffic flowing through the proxy
- Optimised some sensitive areas of the code for speed
- Added option to forcefully close a session after a given time period. A value
  of 0 seconds means never (default). If this option is enabled it may reduce
  the number of simultaneous sessions that can be processed.
- New improved statistics web page.
- Show new 'on hold' status in statistics


Changes from version 1.0.0 to 1.0.1
-----------------------------------

- Fixed incorrect use of max() instead of min() to compute media stream
  count (reported by "Martin Kihlgren" <martin@rabbta.com>)

