28 nov 2005 - Release 0.4.2
===========================
- Microphone noise reduction (can be disabled in system settings)
- System tray icon shows status of active line and enabled services
- Call history option added to system tray menu

Bug fixes
---------
- Twinkle crashes at startup when the systray icon is disabled in the system settings.
- Line stays forever in dialing state when pressing ESC in the call window


19 nov 2005 - Release 0.4.1
===========================
- Fixed build problems with gcc-4.0.2 and qt3-3.4.4

18 nov 2005 - Release 0.4
=========================
- Interface to KAddressbook
- History of incoming and outgoing calls (successful and missed calls)
- History of 10 last calls on call dialog window for redialling
- Call and service menu options added to KDE sys tray icon
- Allow a missing mandatory Expires header in a 2XX response on SUBSCRIBE
- Big Endian support for sound playing (eg. PPC platforms)
- System setting to start Twinkle hidden in system tray
- System setting to start with a default profile
- System setting to start on a default IP address
- Command line option (-i) for IP address

Bug fixes
---------
- send a 500 failure response on a request that is received out of order
  instead of discarding the request.
- 64bit fix in events.cpp
- race condition on starting/stopping audio threads could cause a crash
- segmentation fault when RTP port could not be opened.
- CLI looped forever on reaching EOF
- 64bit fix in events.cpp
- ALSA lib pcm_hw.c:590:(snd_pcm_hw_pause) SNDRV_PCM_IOCTL_PAUSE failed
- sometimes when quitting Twinkle a segmentation fault occurred

Build improvements
------------------
- Removed platform dependent code from stunRand() in stun.cxx
- It should be possible to build Twinkle without the KDE addons on a
  non-KDE system
- new option --without-kde added to configure to build a non-KDE version
  of Twinkle


22 oct 2005 - Release 0.3.2
===========================
- Fixed several build problams with KDE include files and
  libraries.

If you already succesfully installed release 0.3.1 then there is
no need to upgrade to 0.3.2 as there is no new functionality.

16 oct 2005 - Release 0.3.1
===========================
This is a minor bug fix release.

Bug fixes:
----------
- Command line options -f and -share were broken in release 0.3
  This release fixes the command line options.


09 oct 2005 - Release 0.3
=========================

New functionality:
------------------
- ALSA support
- System tray icon
- Send NAT keep alive packets when Twinkle sits behind a symmetric firewall
  (discovered via STUN)
- Allow missing or wrong Contact header in a 200 OK response on a REGISTER

Bug fixes:
----------
- Hostnames in Via and Warning headers were erroneously converted to lower case.
- t_ts_non_invite::timeout assert( t==TIMER_J ) when ACK is received
  for a non-INVITE request that had INVITE as method in the CSeq header.
- The SIP/SDP parser accepted a port number > 65535. This caused an assert
- Segmentation fault on some syntax errors in SIP headers
- Line got stuck when CSeq sequence nr 0 was received. RFC 3261 allows 0.
- With 100rel required, every 1XX after the first 1XX response were discarded.
- Fixed build problems on 64-bit architectures.
- Dead lock due to logging in UDP sender.
- Segmentation fault when packet loss occurred while the sequence
  number in the RTP packets wrapped around.
- Route set was not recomputed on reception of a 2XX response, when a 1XX
  repsonse before already contained a Record-Route header.


30 jul 2005 - Release 0.2.1
===========================

New functionality:
------------------
- Clear button on log view window.

Bug fixes:
----------
- The system settings window confused the speaker and mic settings.
- Log view window sometimes opened behind other windows.
- Segmentation fault when SUBSCRIBE with expires=0 was received to end
  a refer subscription.
- When a call transfer fails, the original call is received. If the line
  for this call is not the active call however, the call should stay
  on-hold.
- On rare occasions a segmentation fault occurred when the ring tone
  was stopped.
- Log view window sometimes caused deadlock.


24 jul 2005 - Release 0.2
=========================

New functionality:
------------------
- STUN support for NAT traversal
- Blind call transfer service
- Reject call transfer request
- Auto answer service
- REFER, NOTIFY and SUBSCRIBE support for call transfer scenario's
  * REFER is sent for blind call transfer. Twinkle accpets incoming
    NOTIFY messages about the transfer progress.
    Twinkle can send SUBSCRIBE to extend refer event subscription
  * Incoming REFER within dialog is handled by Twinkle
    Twinkle sends NOTIFY messages during transfer.
    Incoming SUBSCRIBE to extend refer event subscription is granted.
- Retry re-INVITE after a glare (491 response, RFC 3261 14.1)
- Respond with 416 if a request with a non-sip URI is received
- Multiple sound card support for playing ring tone to a different
  device than speech
- The To-tag in a 200 OK on a CANCEL was different than the To-tag in a provisional
  response on the INVITE. RFC 3261 recommends that these To-tags are the same.
  Twinkle now uses the same To-tag.
- Show error messages to user when trying to submit invalid values on the
  user profile
- DTMF volume configurable via user profile
- Log viewer
- User profile wizard
- Help texts for many input fields (e.g. in user profile). Help can be accessed
  by pressing Ctrl+F1 or using the question mark from the title bar.

Bug fixes:
----------
- A retransmission of an incoming INVITE after a 2XX has been sent
  was seen as a new INVITE.
- If an OPTIONS request timed out then the GUI did not release its
  lock causing a deadlock.
- If the URI in a To, From, Contact or Reply-To header is not 
  enclosed by < and >, then the parameters (separated by a semi-colon) 
  belong to the header, NOT to the URI.
  They were parsed as parameters of the URI. This could cause the
  loss of a tag-parameter causing call setup failures.
- Do not resize window when setting a long string in to, from or subject

Newly supported RFC's
---------------------
RFC 3265 - Session Initiation Protocol (SIP)-Specific Event Notification
RFC 3420 - Internet Media Type message/sipfrag
RFC 3489 - Simple Traversal of User Datagram Protocol (UDP)
           Through Network Address Translators (NATs)
RFC 3515 - The Session Initiation Protocol (SIP) Refer Method
RFC 3892 - The Session Initiation Protocol (SIP) Referred-By Mechanism
        

27 apr 2005 - Release 0.1
=========================

First release of Twinkle, a SIP VoIP client.

- Basic calls
- 2 call appearances (lines)
- Call Waiting
- Call Hold
- 3-way conference calling
- Mute
- Call redirection on demand
- Call redirection unconditional
- Call redirection when busy
- Call redirection no answer
- Reject call redirection request
- Call reject
- Do not disturb
- Send DTMF digits to navigate IVR systems
- NAT traversal through static provisioning
- Audio codecs: G.711 A-law, G.711 u-law, GSM

Supported RFC's
---------------
- RFC 2327 - SDP: Session Description Protocol
- RFC 2833 - RTP Payload for DTMF Digits
- RFC 3261 - SIP: Session Initiation Protocol
- RFC 3262 - Reliability of Provisional Responses in SIP
- RFC 3264 - An Offer/Answer Model with the Session Description Protocol (SDP)
- RFC 3581 - An extension to SIP for Symmetric Response Routing
- RFC 3550 - RTP: A Transport Protocol for Real-Time Applications

RFC 3261 is not fully implemented yet.

- No TCP transport support, only UDP
- No DNS SRV support, only DNS A-record lookup
- Only plain SDP bodies are supported, no multi-part MIME or S/MIME
- Only sip: URI support, no sips: URI support
