jfPhone Changelog

What's new in jfPhone 1.12

Jul 5, 2017
  • fix: online help URL has moved

New in jfPhone 1.11 (Mar 10, 2017)

  • updated ffmpeg support

New in jfPhone 1.10 (Sep 19, 2016)

  • added GSM codec (bug #37)
  • fix : if call comes in on line that failed to register, mark the line as active to allow user to answer the call
  • this is a rare case where server may have been unreachable briefly

New in jfPhone 1.9.9 (Sep 26, 2015)

  • added display name to sip accounts
  • added lock file to prevent running multiple copies

New in jfPhone 1.9.8 (Sep 22, 2015)

  • fixes to register()ing
  • this should fix bug #31

New in jfPhone 1.9.7 (Sep 1, 2015)

  • Minor fixes for linux users;
  • If native libraries aren't loaded the app will not exit but the video button will be disabled;
  • Now includes 32bit linux libraries.

New in jfPhone 1.9.6 (Sep 1, 2015)

  • Fixed support for QOP auth and Record-Route fields (RFC 2543 6.29).
  • Flowroute.com is now supported

New in jfPhone 1.9.5 (Sep 1, 2015)

  • Fixed handling auth string with spaces in quotes (created custom String.split())

New in jfPhone 1.9.4 (Apr 17, 2015)

  • fixed some memory leaks

New in jfPhone 1.9.3 (Mar 27, 2015)

  • added Online Help button to configure window (see ticket #25)

New in jfPhone 1.9.2 (Nov 4, 2014)

  • removed 'Keep Audio Open' option
  • audio is now start()ed only when needed (both output and input)
  • this should keep audio synced better (see bug #22)
  • the audio recording has been moved to a seperate thread

New in jfPhone 1.9.1 (Sep 22, 2014)

  • new option : exit with closed
  • new tray icon (Windows 7 theme)

New in jfPhone 1.9.0 (Jul 14, 2014)

  • new codec : G.722 wideband : 16Khz sampling rate @ 14bits/sample (64Kbps)
  • with a different sampling rate I had to rewrite a lot of code to support different sampling rates
  • everything is now interpolated up to 44.1KHz internally (requires a bit more cpu power)
  • JPL is now ready for more HD codecs
  • although I've looked at some like G.711.1 and doing so would be very difficult
  • do you remember your FFTs from university?

New in jfPhone 1.8.1 (Jul 7, 2014)

  • fixed video codec selection (works better with Asterisk now). I was using the offered codecs instead of the accepted ones and by default VP8 is used which Asterisk doesn't support yet

New in jfPhone 1.8.0 (Apr 24, 2014)

  • new: a different ringtone can be assigned for inbound and outbound(ringback) tones. (user requested feature)
  • fix: Java8 compatible
  • new: added checkAuth() and checkForReplay() for SRTP (added security)

New in jfPhone 1.7.1 (Mar 13, 2014)

  • fix: Java8 compatible
  • new: added checkAuth() and checkForReplay() for SRTP (added security)

New in jfPhone 1.7.0 (Feb 5, 2014)

  • new : SRTP key exchange thru DTLS (tested with jPBXlite/0.16 only)
  • this should finish everything I have planned lately and jPhoneLite should quiet down for a while unless bugs are found

New in jfPhone 1.6.0 (Feb 5, 2014)

  • new : SIP signaling now supports TCP and TLS transports
  • with TLS you must configure Asterisk to not verify certificate: sip.conf add : tlsdontverifyserver=yes

New in jfPhone 1.5.0 (Feb 5, 2014)

  • new : added SRTP media encryption, tested with Asterisk 1.8 (11.7.0)
  • up next : secure signaling and DTLS

New in jfPhone 1.4.3 (Jan 3, 2014)

  • fix: WinSound would cause NPE in stop() if start() failed
  • fix: if TURN failed the line was unusable

New in jfPhone 1.4.2 (Dec 28, 2013)

  • fix : when a call is placed on hold the RTPChannel thinks the stream is inactive and generates an rtpInactive event which ends the call (this logic was recently added)
  • if the streams mode doesn't include recv then the inactive event is not triggered
  • fix : properly send back the SDP mode (sendrecv, inactive, etc.) for each stream as requested in invite
  • new : when the audio stream is on hold (no recv) an intermittent beep is generated locally

New in jfPhone 1.4.1 (Dec 28, 2013)

  • fix : removed requestPublicIP in javaforce.voip.RTP - a quick add in v1.4.0 which is not needed and I didn't wait for reply which caused harmless stun exceptions
  • new : now support using the LocalCamera on multiple lines at the same time (as long as they all use the same codec)

New in jfPhone 1.4.0 (Dec 11, 2013)

  • added support for multiple video channels. Video conferencing with jPBXlite/0.12 is now possible.
  • see jpbxlite.sf.net/VideoConference.txt for more details
  • video with XLite 4.x (H.263-1998) now works. (although Xlite's video decoder seems to have problems and even crashed a few times).
  • many bug fixes

New in jfPhone 1.3.0 (Dec 2, 2013)

  • added VP8 video codec support (RFC Draft : http://tools.ietf.org/html/draft-ietf-payload-vp8-10)

New in jfPhone 1.2.0 (Nov 29, 2013)

  • added STUN,TURN,ICE support
  • STUN is used to detect public IP/port
  • TURN is used to relay RTP data when direct connecting is not possible
  • some PBXes do NOT proxy the RTP data so TURN can be useful in these cases
  • tested with resiprocate reTurn server (http://resiprocate.org/ReTurn_Overview)
  • added SIP Expires to EditSettings dialog box (default = 3600 seconds) (was previously undocumented setting)
  • added SIP/RTP Port Ranges
  • added check for "received" & "rport" tag in "Via" field returned from server (RFC 3581)
  • this is just as good as STUN (if the server supports it)
  • removed dyndns support to detect public IP (lagged really bad sometimes with no proper timeout)

New in jfPhone 1.1.9 (Nov 23, 2013)

  • update status when transfer is requested incase PBX doesn't respond
  • perform sip registration in a new thread after config is done
  • makes gui more responsive since registration can sometimes take several seconds
  • other minor fixes

New in jfPhone 1.1.8 (Nov 23, 2013)

  • calls are no longer cut off after a transfer, the PBX will issue a BYE when the transfer is complete (blind or non-blind)
  • this avoids failed transfers leaving a call leg dangeling (which would eventually get dropped)
  • during xfer process you can double-click a contact or recent call log to enter as target

New in jfPhone 1.1.7 (Nov 16, 2013)

  • fixed sound uninit order
  • fixed SIP registration using qop,nc (no quotes)
  • fixed some other minor SIP handling issues
  • added ESC/ENTER hotkeys to dialog boxes

New in jfPhone 1.1.6 (Oct 15, 2013)

  • undo bug #14 but add a break;

New in jfPhone 1.1.5 (Oct 15, 2013)

  • fixed ACK missing Tag sometimes (see bug #13)
  • fixed NOTIFY not decoding messages sometimes (see bug #14)

New in jfPhone 1.1.4 (Sep 30, 2013)

  • fixed msvcr100.dll not found on msi package

New in jfPhone 1.1.3 (Sep 30, 2013)

  • fixed sipexpires option not being used in reregister()
  • fixed possible crash in codecpack

New in jfPhone 1.1.2 (Sep 30, 2013)

  • JPL is now UTF-8 compatible
  • Settings includes a 'sipexpires' entry if you want to change it manually
  • Default = 3600 seconds (1 hr)
  • min=300 (5 mins) max = 3600 (1hr)
  • added option to download CodecPack from EditSettings

New in jfPhone 1.1.1 (Sep 20, 2013)

  • fixed WinSound issues

New in jfPhone 1.1.0 (Sep 18, 2013)

  • H.263 RFC2190 still incomplete - maybe fix later
  • tested with jPBXlite/0.9 including video

New in jfPhone 1.1.0 Beta 3 (Sep 18, 2013)

  • new - all three audio systems provide selecting the output/input hardware (java/win/lnx)
  • new - the Win32/64 loader is now 32/64bit universal (32bit loader will launch 64bit if needed)
  • makes for just one MSI package (less confusion)
  • if there are no more bug fixes this will become the next stable release

New in jfPhone 1.1.0 Beta 2 (Sep 18, 2013)

  • new - finished Linux native API using JNA for Sound/Camera
  • camera may not support all pixelformats until I get ffmpeg/libavdevice working

New in jfPhone 1.1.0 Beta 1 (Sep 18, 2013)

  • new - all JNI code has been ported to JNA
  • linux api has not been coded yet (so no camera yet in linux)
  • new - H.263/264 is now supported with FFMPEG
  • H.263 requires 1998/2000 versions.
  • The original H.263 using RFC2190 is not supported yet (see src/javaforce/voip/RTPH263.java)
  • new - JPL is now packaged in MSI files for Windows users

New in jfPhone 1.0.7 (Jul 29, 2013)

  • fix - auto hold feature will not place a line on hold that is in a conference
  • fix - an inbound reINVITE while still ringing would send a 200 back in error

New in jfPhone 1.0.6 (Jul 25, 2013)

  • fix - was sending an ACK for a 183 (ringback). ACK should only be sent for 200 once call is complete.
  • hopefully this fixes all bugs related to new upgrades

New in jfPhone 1.0.5 (Jul 25, 2013)

  • fix - onCancel() now fully ends a call which can happen in a ringback phase of a call

New in jfPhone 1.0.4 (Jul 25, 2013)

  • fix inbound call again - a reINVITE while line is still ringing could cause a second line to start ringing for the same call
  • fix - hold function now works more than once (cseq was not incremented - which I had a comment not to do so - not sure why??? - oh well, works now).
  • new - option:Auto Hold/Unhold - this will automatically hold/unhold lines as you switch between them
  • new - ringback tones are now supported (SIP code 183). If you call certain phones (mostly mobiles) they may have custom ring tones for you to hear.
  • new - vol settings are now saved in config

New in jfPhone 1.0.3 (Jul 23, 2013)

  • fix : if a line is ringing from inbound call and another inbound call comes in on the same SIP account while the first call is still ringing the new call will overtake the same line and the first call was lost

New in jfPhone 1.0.2 (May 13, 2013)

  • fix : SUBSCRIBE was not working (extra headers were removed before 401 was processed)
  • new : can now perform non-blind transfers.
  • when you want to transfer someone pick another line first
  • call the transfer target on the other line and let them know you are going to transfer a call to them
  • go back to the first line and press XFR and then the other line
  • if all goes well the original line will be transfered to the other line

New in jfPhone 1.0.1 (May 13, 2013)

  • fix : timestamp on g729a should be 160 like all the other codecs

New in jfPhone 1.0 (May 13, 2013)

  • no code change (a few renamed classes)

New in jfPhone 0.99.1 (May 13, 2013)

  • fix : RTP buffering issue (now uses cyclical buffer)

New in jfPhone 0.99 (May 13, 2013)

  • new : added a recording button (to WAV file)
  • new : optimized codec encoding/decoding by avoiding memory reallocation (now assumes 20ms blocks)
  • fix : g711a codec : encoding algo was wrong (copied incorrectly from asterisk)
  • note : the next version will be 1.00 if I don't fix any bug in the next week or two

New in jfPhone 0.92 (May 13, 2013)

  • fix : I think I really fixed the windows audio this time. Tested on systems that were having problems before.
  • Increased number of buffers used and cleaned up the code by avoiding any memory re-allocation in the timers.

New in jfPhone 0.91 (May 13, 2013)

  • new : added disable video option per line configuration.
  • I've noticed some SIP providers get confused when they see both audio and video codecs.
  • fix : properly end a call when codec negotation fails
  • new : can now config video FPS and resolution (keep it low or audio gets choppy)
  • removed : Windows VFW support - was just crashing - and unable to scale window properly (obsolete api)
  • fix : use proper RGB order when using videoInput library

New in jfPhone 0.90 (May 13, 2013)

  • removed : flash support - audio had unacceptable latency, video was non-standard codec
  • new : added Windows Camera support using VFW and DirectShow (using videoInput library)
  • fix : codec negotation when receiving a call

New in jfPhone 0.12.1 Beta (Jun 18, 2010)

  • Supports : g711, g729a, RFC 2833, 6 lines w/ conference, hold, transfer.
  • Tested with : Asterisk, callcentric.com
  • Conference Mode : Set for each line (up to all 6 lines)
  • Instant Messaging : allows you to send and receive text messages during a voice call.
  • Share Desktop : allows you to share your desktop and optionally allow the other side to control your system.
  • This feature requires JNI and a Windows 32/64bit system on the sharing side.
  • File Sharing : send a file to other side.

New in jfPhone 0.12 Beta (Jun 17, 2010)

  • new : added Applet as requested
  • new : added key binding ENTER to click Call

New in jfPhone 0.11 Beta (Jun 12, 2010)

  • new : added message waiting (voicemail) indicator (flashing orange light)
  • fix : keepAudioOpen option was preventing ringing sound from being played (introduced in v0.9.1)
  • new : added option 'Use smaller font' for JVMs with different font sizes (in case text in buttons is missing)

New in jfPhone 0.10 Beta (Jun 11, 2010)

  • new : send file feature (just like ShareDesktop and Instant Messaging it requires custom RTP packets)
  • new : the handling of custom RTP packets has changed and is *NOT* compatible with previous versions.
  • RTP packets are now properly seperated into channels using the ssrc id.
  • So Instant Messaging and ShareDesktop will not work with older versions.
  • fix : properly flush output to close a ShareDesktop session.
  • fix : ShareDesktop client can now close the session.

New in jfPhone 0.9.1 Beta (Jun 2, 2010)

  • new : improved share desktop (VNC) code (viewer also includes a toolbar for some basic functions)
  • new (user requested feature) : new option 'Keep Audio Open' - you can disable it so output audio is only start()ed
  • when actually needed (default is to keep it always running to avoid popping sounds when audio is started and stopped).

New in jfPhone 0.9.0 Beta (May 27, 2010)

  • new : share desktop - allow other side to see and control your desktop. (works only on Windows systems)

New in jfPhone 0.8.3 Beta (May 10, 2010)

  • new : added a system tray icon that shows incoming calls if jPhoneLite is not active window
  • new : new options : 'hide on minimize' and 'always on top'
  • new : can now ignore an incoming call (just press End)

New in jfPhone 0.8.2 Beta (May 7, 2010)

  • fix : check available() before read()ing from mic to avoid blocking in timer - improves audio quality
  • fix : another bug in local ip detection

New in jfPhone 0.8.1 Beta (May 4, 2010)

  • fix : log rollover didn't work
  • new : added new option 'Disable Logging'

New in jfPhone 0.8 Beta (Apr 29, 2010)

  • new : added new feature : Instant Messaging (IM) if server allows any RTP data thru then the IM button is enabled which popups a simple instant messaging window.
  • Doesn't seem to work with Asterisk but callcentric.com works

New in jfPhone 0.7 Beta (Apr 27, 2010)

  • new : finished writing audio input/output selection in the settings
  • note : most source now includes lots of javadoc comments.
  • Try running 'ant javadoc' in the root folder and in /projects/jphonelite
  • This will generate 'javadoc' folders, in there open index.html for the javadocs.
  • fix : jnlp now installs start menu and desktop shortcuts.
  • fix : other minor fixes (tries to register a line 5 times before giving up)

New in jfPhone 0.6 Beta (Apr 27, 2010)

  • new : now supports callcentric.com (wasn't easy) (hold doesn't work - use mute instead)
  • callcentric is VERY strict on their sip syntax
  • new : added authorization username (if different from normal username)
  • fix : improved local IP detection
  • new : checks for update on startup

New in jfPhone 0.5 Beta (Apr 14, 2010)

  • fixed : time critical timers must use scheduleAtFixedRate() or else choppy sound was occuring on some (most?) systems
  • new : retry register if reregister failed during expired reregisters
  • fixed : other minor improvements

New in jfPhone 0.4 Beta (Apr 14, 2010)

  • fixed : codec negotiation if both codecs are accepted by remote then reINVITE with just g729a to make sure correct codec is used (outbound) only send back one codec for inbound calls
  • new : reregister after connection expires (3600 seconds)
  • new : reregister if not registered in 1 sec (happens a lot actually)
  • new : hosts can include port spec (example.com:5060)
  • new : hungup shows error code (503, etc.)

New in jfPhone 0.3 Beta (Apr 14, 2010)

  • handle reINVITEs now (was just hanging up before)
  • generate DTMF tones locally (those generated locally and remotely) (only generated while in a call)
  • fixed bug : was issuing 180 AFTER 200 for an INVITE if AA was enabled (harmless?)

New in jfPhone 0.2 Beta (Apr 14, 2010)

  • added g729a codec
  • other minor fixes