Java SIP Client Development

The Java SIP library is a compact but feature rich, mature SIP client, developed by Mizutech with special care for reliability, flexibility, interoperability and backward API compatibility. 
Initial versions were focusing on applet use-case (our old applet based browser webphone), then lately (since 2014) the project turned to be a general purpose Java SIP client library.
The library is under continuous development with a new stable release usually every month. The webpage is updated less frequently (only major new versions are published) but our customers always get the latest stable version. We provide long-term support and we have ambitious plans regarding the future of the library.
Major changes for the JVoIP library are listed in the change log below.

JVOIP VERSION HISTORY

   Latest stable release

For new customers we always send the latest stable version which usually contains more improvements above the last published demo release. Internally we release a new stable version every month, however the downloadable demo and documentation on this website might be updated only once per year.
 

JVoIP 9.0.24031 - Tuesday, April 9, 2024

This is a quality update with bug fixes only.
The upcoming major new versions are planned to be released in June with many new features and improvements.

 

JVoIP 9.0 - Tuesday, July 11, 2023

  • new: notification objects (events instead of strings)
  • new: API to receive the media streams: API_GetMedia()
  • new: blacklist and whitelist
  • new: full video support
  • new: video related API
  • new: calltype function parameter for Call and Accept
  • new: external video in/out streaming
  • new: handle Replaces
  • new: multiple separate simultaneous conference calls
  • new: built-in GUI icon and right click popup
  • new: query log file path (API_GetLogPath)
  • new: notifications about incoming/outgoing SIP messages
  • new: sendblocknotifications parameter and BLOCK notifications
  • new: re-register on no keepalive answer (reconnectonnokeepalive)
  • new: icon for the built-in user interface
  • new: configurable retransmission timeout (timer3)
  • new: handling maxptime
  • new: configurable listen address for the built-in API (wpapilistenip)
  • new: API_IsTerminated
  • new: sendearlyack setting
  • new: rejectcallsfromunknown setting
  • new: disccode, userrejectdisccode and blockrejectcode settings
  • new: p_referred_identity, p_asserted_identity, remote_party_id and privacy settings
  • new: beeptype, systembeeptype and beepfrequency settings
  • new: music on hold (MOH)
  • new: security and strictness settings and documentation
  • changed: rtpkeepaliveival defaults to 25000 (25 seconds)
  • improved: ipv6 handling, ipv4/ipv6 auto-detect
  • improved: audio device enumeration on linux systems
  • improved: re-invite
  • improved: SDP parsing (both speed and correctness)
  • improved: connection recovery
  • improved: endpoint lookup performance optimizations
  • improved: MWI parsing
  • improved: presence XML parsing
  • improved: presence better parsing for incoming notifications
  • improved: presence retry after failure
  • improved: chatreports
  • improved: audio streaming
  • improved: attended call transfer
  • improved: call hold state machine
  • improved: loading environment variables
  • improved: failover (to other transport protocol, backup server, SRV DNS, re-init)
  • improved: dynamic codec payload number allocations
  • improved: new call during SIP stack startup
  • improved: RTP source change handling
  • improved: TCP API
  • improved: sample rate calculations
  • improved: thread safety
  • improved: audio mixer info
  • improved: not using audio threads when local audio device is disabled
  • improved: keeping the correct RTP stream after SSRC
  • improved: open/close audio device from separate thread (java audio bug workarounds)
  • improved: opus codec properties in the SDP
  • improved: RTP keep-alive
  • improved: DTMF dynamic payload handling
  • improved: ringincall and beeponincoming handling
  • improved: clear non-persistent local cache on version change
  • improved: delayed initialization
  • improved: IMS 3GPP
  • improved: API_SendSIPMessage
  • improved: SIP message decoding
  • improved: switch between transport protocols
  • fix: accept linux \n only line separator for the config/ini file
  • fix: answer for OPTIONS requests in call sessions
  • fix: log queue overflow with high log levels
  • fix: opus wideband vs narrowband mismatch in some circumstances
  • fix: prevent SIP stack re-init at new call init
  • fix: loading the correct AEC configuration
  • fix: socket thread terminate on failed recv
  • fix: don't reject register if no password configured
  • fix: don't show PRESENCE as MESSAGE
  • fix: handle different domains with multiple accounts
  • fix: MD5-sess auth
  • fix: ringtone doesn't stop at call connect on certain hardware/drivers
  • fix: double add tech prefix
  • fix: other minor bug fixes and improvements
 

JVoIP 8.8.23021 - Thursday, February 2, 2023

This is a quality upgrade with bug fixes only.

 

JVoIP 8.8 - Tuesday, June 14, 2022

  • new: RTP extension (Section 5.3.1 of RFC3550)
  • new: IPv6 support in all modules (transport/SIP/SDP/media)
  • new: unique IM ID
  • new: SIPREC implementation (RFC 7866)
  • new: real-time local streaming option
  • new: ED-137 (implementation of the ED-137 specification as VCS from ground to air radio)
  • new: In-Reply-To SIP header handling
  • new: intelligent max udp packet length calculation
  • new: Authentication-Info
  • new: redial (autoredial parameter)
  • new: API over websocket (beside UDP, TCP and HTTP)
  • new: API_RTPHeaderExtension (Set RTP header extension for the RTP packets)
  • new: API_SetLineParameter (set certain parameter for a specific line)
  • new: API_GetLineParameter (get line specific parameter)
  • new: API_SetSDPField (set custom SDP field globally or for a line)
  • new: API_GetSDPField (get custom SDP field)
  • new: API_ED137PTT (ED-137 Push to talk)
  • new: capability to spawn multipe signaling sockets on demand with different servers
  • new: customsdpfield and customsdpmediafield parameters
  • new: rtpextraheader and rtpextraheadernotify parameters
  • new: keepoldcustomvalues and networkchecks and rtpkeepalivemultiplier parameters
  • new: mainlogicwaitmultiplier parameter (might be used when real time operations are required)
  • new: natopenpacketsalways parameter (send NAT open packets)
  • new: sendmedia_seq parameter (insert sequence number for local stream; useful for debugging)
  • new: changesystemsettings parameter (set to 0 to prevent changing JVM properties by System.setProperty)
  • new: logquesize parameter (log queue max length multiplier; default is 1)
  • new: answerwithallcodec parameter (list all supported codec in the SDP answer)
  • new: siprec_src, siprec_src_start, siprec_srs_uri, siprec_srs, siprec_srs_hide SIPREC related parameters
  • new: ed137, defptt, processmutedrtp, pttid, maxforwards, disconed137rtptimeout ED-137 related parameters
  • new: auto detect available ciphers (don't try to use missing ciphers)
  • new: INFO notification
  • new: RTPE notification
  • new: REGISTER notifications
  • new: handle R2S-KeepAlivePeriod and R2S-KeepAliveMultiplier
  • improved: endpoint reinit on register failure
  • improved: audio device pre-init and caching
  • improved: dns record cache
  • improved: RTP header parsing
  • improved: RTP timing accuracy
  • improved: mute and hold
  • improved: operation with no audio device (streaming only)
  • improved: headless mode
  • improved: network availability detection
  • improved: merge (extra) SIP headers
  • improved: local media streaming
  • improved: auto guess best SDP local ip
  • improved: 3GPP SMS
  • improved: better handling of 513 Message Too Large responses
  • improved: remove not negotiated codec's
  • improved: release session specific global objects on session destroy
  • improved: GetLocalAOR
  • improved: handling incorrect packet size for GSM codec multiple frame per packet
  • improved: use the correct local listener port also for logic SIP URI's
  • improved: SIP stack re-init
  • improved: socket (UDP/TCP/TLS) init from thread (for parallel init and to avoid blocking the main signaling thread)
  • improved: HTTP API URI parameter parsing
  • improved: discard old network paths statistics on version change
  • improved: queue new call requests
  • improved: MWI (voicemail) notifications
  • improved: a list of other small changes
  • fix: increase timestamp while not sending
  • fix: auth for IM SIP MESSAGE
  • fix: 10.0.0.0/8 ip addresses detected as any ip
  • fix: opus codec payload negotiation
  • fix: various other minor bug fixes and improvements
 

JVoIP 8.6.21121 - Wednesday, February 9, 2022

This is a minor new version with a list of bug fixes, improvements and optimizations.

 

JVoIP 8.6 - Thursday, June 3, 2021

  • new: G.722.1 codec
  • new: USSD notifications
  • new: UUI data (User-to-User Call Control Information as described in RFC 7433)
  • new: IMS/3GPP/VoLTE (basic compatibility and features such as USSD or 3GPP SMS. ims3gpp parameter)
  • new: RFC 7989 implementation (Session-ID header)
  • new: 3PCC (1PCC/3PCC Allow-Events, talk/hold, RFC 3725; enable_3pcc parameter)
  • new: streaming from RTP source (previously only raw pcm was supported)
  • new: player/recorder usage statistics
  • new: auto transport protocol failover attempt on connection failure
  • new: support for compact SIP headers
  • new: VAD by line
  • new: TLS domain validation option (tlspolicy)
  • new: possibility to set client certificate (tlsclientcerttype, tlsclientcertfile and tlsclientcertpass parameters)
  • new: Alert-Info and Call-Info handling for auto-answer (including Answer-After delay)
  • new: dropduplicatepackets parameter to filter out duplicate udp packets
  • new: simplified codec settings with the codec and prefcodec parameters
  • new: configurable sdp session name (sdpsessionname)
  • new: configurable session idle timeout (idletimeut)
  • new: possibility to set TOS also for the signaling (sigtos and mediatos parameters)
  • new: sip_uui parameter (to specify UUI data for all sessions)
  • new: enableautoaccept, autoacceptdelay and autoacceptheader parameters
  • new: sipproto parameter (sip, sips, tel)
  • new: sendrtpondisabled and sendrtponfailed parameters
  • new: sendmediain_conf
  • new: maxlinesex parameter
  • new: playbacksteamformat parameter
  • new: sendmediaout_line parameter
  • new: unregextraccounts parameter
  • new: checktargetbranch parameter
  • new: alloweventsheader parameter
  • new: ringtoneout parameter
  • new: API_DisableBLF
  • new: API_RequestStatus
  • new: API_SendSIPMessage
  • new: API_SO
  • new: API_SendSIP
  • new: API_SendSIPMethod
  • new: API_SetUUI
  • new: API_SetSSLContext
  • new: API_SendUSSD
  • improved: module loader
  • improved: drop packets on first burst long queue
  • improved: precahce/preinit winaudio to reduce first packets delay
  • improved: API_SetParameters accept also comma as separator instead of \r\n
  • improved: optimizations/adjustements for Java 16
  • improved: SRTP (strictsrtp)
  • improved: TLS transport
  • improved: voice recording file upload and other voice recording related fixes
  • improved: multiple simultaneous calls session management
  • improved: multiple simultaneous calls audio / media lines management
  • improved: auto call retry on call failures with changed parameters
  • improved: various minor improvements for VAD and AEC
  • improved: auto-answer
  • improved: file paths and urls normalizations
  • improved: SRV records handling for failover or load-balancing servers
  • improved: API_StreamSoundBuff accept start parameter 0 (stop the playback) even if buffer is 0
  • improved: API_Transfer accept also full SIP URI
  • improved: number of simultaneous calls can be up to 512 by default (and this can be increased if needed with the parameter)
  • improved: voice record upload on HTTPS
  • improved: jitter buffer optimizations
  • improved: streaming auto convert to wideband if required
  • improved: exception handling
  • improved: audio device selection
  • improved: sendrtponmuted and rtpkeepaliveival handling
  • improved: subnet match calculations
  • improved: threads termination on close
  • improved: codec - payload number dynamic mapping
  • improved: voice records start/stop per line on demand at runtime
  • improved: hold, mute reload
  • improved: auto-unregister
  • improved: local app audio streaming
  • improved: register state reports
  • improved: SIP signaling processing accuracy and performance
  • improved: config file storage and path detection
  • improved: guess best line for transfer if multiple calls in progress if line is not explicitly specified
  • improved: jitter buffer
  • improved: audio packet drop with winaudio delay
  • improved: more integration examples
  • fixed: srtp key length for AES_CM_256_HMAC_SHA1_80 and AES_CM_256_HMAC_SHA1_32
  • fixed: srtp sequence number wraparound
  • fixed: incorrect SDP IP in some circumstances
  • fixed: don't recreate SRTP object on call hold
  • fixed: skip correct wave header for file streaming
  • fixed: message size crop with TCP and TLS transport
  • fixed: call recording sometime can't store
  • fixed: API_StreamSoundStream and API_StreamSoundBuff
  • fixed: locale strings handling for certain countries such as Turkish
  • fixed: calls to SIP URI (with full URI, not only username part)
  • fixed: early media can't be heard
  • fixed: stop udp threads after API_Stop
  • fixed: free memory after calls
  • fixed: wrong call hold sendonly/recvonly indications in some circumstances
  • fixed: wrong cseq number with ACK in some circumstances
  • fixed: 211 support tickets resolved with existing customers since the previous major release
 

JVoIP 8.4 - Wednesday, February 3, 2021

Quality upgrade with bug fixes, minor improvements and an updated SIP/media stack.

 

JVoIP 8.0 - Thursday, March 19, 2020

  • new: handle multiple A records for the same domain
  • new: auto detect other phones on the same LAN
  • new: textmessaging parameter
  • new: re-register with best IP to help NAT unfriendly servers
  • new: backup/failover SIP server (backupserver)
  • new: API_Info and infocontenttype to send any SIP INFO message
  • new: failback to inband dtmf in SIP INFO not answered
  • new: send reregister and reinvite reason
  • new: read parameters (settings) also from environment variables (keys must be wp_ prefixed)
  • new: try to load callerid/displayname also from Remote-Party-ID
  • new: auto redial if bye received within 2 second for some disconnect reasons such as "Bearer capability not available"
  • new: auto TCP/TLS failback
  • new: change pitch based on audio jitter
  • new: contactaddressfailback
  • new: normalizenumber, numrewriterules, numrewriterulesadv
  • new: configurable dtmfwait
  • new: sendmedia_line option
  • new: configurable tlsversion
  • new: bindlip, localip, bindtolocalip, fawlocalip settings
  • new: configurable max simultaneous calls
  • new: auto adapt for CPU core count (performance)
  • new: auto failback between transport methods
  • new: line parameter for voice record
  • new: API_GetMySIPURI
  • new: API_RTPStat
  • new: RTPSTAT and LOG,RTP notifications
  • new: API_GetGlobalStatus
  • new: GetAccountRegState/API_GetAccountRegStateString
  • new: remote party id processing
  • new: streaming example
  • new: ring tone volume
  • improved: command line processing
  • improved: call transfer
  • improved: DNS resolver
  • improved: presence reports
  • improved: audio device handling
  • improved: VAD (longer silence delay and change limiter)
  • improved: AEC
  • improved: if no incoming packets, re-invite with changed ip (private -> public or inverse
  • improved: STUN handling
  • improved: jitter packet drop optimizations
  • improved: watch for audio line underrun
  • improved: new local ip detection on change
  • improved: stun natcheck
  • improved: SIP dialog handling
  • improved: ports settings
  • improved: prestart public IP detection
  • improved: actual re-register interval calculation
  • improved: headless required display on No X11 DISPLAY java.awt.HeadlessException
  • improved: more reliable CHATREPORT messages
  • improved: call recording
  • improved: audio local streaming
  • improved: utf characters: handle cyrillic/unicode characters as the audio device name
  • improved: NS service installer progress bar
  • improved: better handle dynamic IP changes at runtime
  • improved: log to console and log window
  • improved: tunnel/direct server failover (when tunnel activated)
  • improved: target SIP domain vs IP:port handling
  • improved: many other minor improvements
  • fix: consider rport in via for changing target URI
  • fix: close audio device on release
  • fix: TCP/TLS connect to multiple remote peers
  • fix: sometime transport reset to UDP
  • fix: unregister on exit
  • fix: 121 closed tickets from the last release
  • fix: many other minor bug fixes
 

JVoIP 7.4 - Friday, May 10, 2019


  • new: callforwardonnoanswertimeout setting
  • new: voicerecording upload retry (also for HTTP uploads)
  • new: async refresh audio device list
  • new: auto transport protocol detect (udp/tcp/tls) (if not set with the transport parameter)
  • new: auto transport udp/tcp/tls failback
  • new: auto media encrypt detect (mediaencrypt, SRTP)
  • new: chat queue
  • new: chat feedback
  • new: UPnP support
  • new: dtmf support in early media
  • new: ability to set the logpath. also accept environment variables like %computername% %username%
  • new: ability to disable retry with other codec feature
  • new: API_GetLineDetails availability over socket
  • new: API_CheckConnection
  • new: launch GUI from command line or as lib (API_StartGUI)
  • new: handle redial at X-Asterisk-HangupCause: Bearer capability not available
  • improved: OPUS codec attributes
  • improved: playback/recorder thread polling and prioritizations
  • improved: don't send iscomposing if not needed
  • improved: group chat
  • improved: better handle multiple simulatenous call launch
  • improved: GetOtherPartyDisplayName and GetBestDisplayname
  • improved: Caller-ID display
  • improved: handle logpath = null (will restore default path)
  • improved: hasredial allowrecall callretryonreject codecretry
  • improved: redial
  • improved: offline chat
  • improved: username handle with/without domain (full URI or simple username)
  • improved: keep alive (auto set by default)
  • improved: SRTP handling
  • improved: faster startup
  • improved: clean shutdown
  • improved: mediaench library auto download if missing
  • improved: better logs for audio playback thread
  • improved: base64 encoder for utf-8 strings
  • improved: API_GetStatus for lines
  • improved: quick STUN
  • improved: TLS transport (keep session on TLS if possible)
  • improved: recover from audio error
  • improved: STATUS reports
  • improved: auto accept call option
  • improved: presence state strings (PRESENCE notifications)
  • improved: disable fast stun only if improves connectivity
  • improved: skip dns lookup on subsequent failure
  • improved: dns srv record lookup
  • improved: registered state reports
  • fix: auth username handling
  • fix: transport name in the signaling
  • fix: webphone freezing at: EVENT,audioplayer close
  • fix: disconnect reason texts
 

JVoIP 7.0 - Thursday, November 29, 2018


  • new: group chat
  • new: offline messaging
  • new: auto switch codec for conference
  • new: capability to change audio format during calls
  • new: advanced dial plan rules (dial plan)
  • new: handle system environment variables for paths
  • improved: main status reports
  • improved: local character set handling
  • improved: via rport handling
  • improved: conference mixer
  • improved: presence
  • improved: best codec selection
  • improved: codec change on reinvite
  • improved: dynamic payload handling
  • improved: prioritize codec which is already in use by other ep
  • improved: conference from wideband call
  • improved: audio queue teardown
  • improved: cisco CUCM compatibility
  • improved: mediaench
  • improved: notification handling
  • improved: CHATREPORT (with better offline queue handling)
  • improved: route and path handling
  • improved: sync voice recording for call legs
  • improved: best local IP autodetect
  • improved: dns lookups
  • fix: re-register if no register endpoint
  • fix: signaling halt after audio error
  • fix: lose connection after a while
  • fix: freeze on audio record device disable or change
  • fix: catch on GetHostString voip.mizu-voip.com
  • fix: direct call to SIP URI
  • fix: speex wideband minimum buffer size
  • fix: winaudio hung on close
  • fix: crash on close
  • fix: numerous other minor bug fixes
 

JVoIP 6.8 - Friday, April 20, 2018


  • new: API_GetNotifications and API_GetNotificationsSync (no need for socket anymore for the notifications)
  • new: IMS/3GP/VOLTE support
  • new: multi-line remote audio streaming
  • new: reports about voice recording (VREC)
  • new: mp3 call record option
  • new: unsubscribe API
  • new: store (rename) previous log file
  • new: call with DTMF as: xxx,yyy (first call xxx, then send yyy as dtmf)
  • new: sample rate convert
  • new: wideband audio streaming (this is for local streams. wideband codec for VoIP calls have been added long time ago)
  • new: PLAYREADY notification for local audio streams
  • new: API for local streaming from buffer
  • new: API_RecFiles
  • new: run without audio devices (for example for streaming from/to file or for recording on a headless Linux)
  • new: wpapiconnectport setting (set before start if needed)
  • new: aectype setting
  • new: singleinstance setting
  • improved: correct (best match) local bind IP detection
  • improved: successive API calls (multiple calls launched at once)
  • improved: presence xml handling
  • improved: wideband optimizations
  • improved: multi-line operations
  • improved: call transfer
  • improved: non-blocking dns requests in separate thread (with timeouts)
  • improved: GetCodecFrameCountTime (to be sent in SDP vs real)
  • improved: silence detect alg skip packets during call hold
  • improved: GUI flickering
  • improved: DeleteOldRecFiles recursive
  • improved: DNS record caching with auto refresh
  • improved: don't send ping packets if not registered
  • improved: chat composing notifications (SIP MESSAGE isComposing)
  • improved: applying settings changes vs caching
  • improved: improved compatibility with third-party devices (accept malformed SIP packets if doesn't affect security)
  • improved: a long list of micro optimizations
  • fix: multiple frames per packet for speex
  • fix: crash with multiple frames per packet in opus ultra wide-band
  • fix: AEC related buffer overrun 
  • fix: ftp missed files upload
  • fix: special or unicode characters in the audio device name
  • fix: CSeq number increase for new REGISTER after old failed
  • fix: various SIP signaling related fixes
  • fix: 14 other minor bug fixes
 

JVoIP 6.6 - Friday, December 8, 2017


  • new: headless mode (can be used also on servers with no GUI or X-Window installed)
  • new: BLF (support for Busy Lamp Field)
  • new: autoprovisioning with opcodes
  • new: notification about unregister
  • new: wideband conference
  • new: in-band DTMF (previously only RFC 2833 and SIP INFO was supported)
  • new: API_GetLineDetails to query endpoint details
  • new: allowsipuriasusername parameter (for URI input normalization)
  • new: AGC for recorded voice and volume normalization for the sides
  • new: auto codec switch from wide-band to narrow-band when low quality network is detected
  • new: registerex API
  • new: OPUS codec pure Java implementation (not need for external library anymore)
  • improved: voicemail (display and asterisk compatibility)
  • improved: presence
  • improved: conference mixer
  • improved: multi-line (simultaneous calls)
  • improved: PLC (packet loss concealment)
  • improved: voice recording quality
  • improved: insert multiple custom SIP headers
  • improved: minimal built-in user interface (not for the headless version)
  • improved: command line parser, config file detection
  • improved: example code and documentation
  • improved: a long list of other minor improvements
  • fix: catch on RefreshDNSCache, catch on HostToIpExFromCache
  • fix: InetConnectionTest (when used with public server)
  • fix: rejectonbusy
  • fix: conference calls with speex
  • fix: wideband codec transcoding bug fixes
  • fix: special characters in chat messages
  • fix: G.729 ptime and framing time fix for voice call recording
  • fix: hold/reload sending 0.0.0.0 ipv4 address with the SDP
  • fix: 44 other minor issues closed (all the pending issues resolved, no any open ticket left)
 

JVoIP 6.4 - Wednesday, June 7, 2017


  • new: presence complete rewrite with support for PUBLISH/SUBSCRIBE/NOTIFY
  • new: unicode for chat
  • new: public universal API accessible via UDP/TCP/HTTP (clear text/XML/JSON or URL parameters)
  • new: ability to receive the media streams from the SDK
  • new: multiple simultaneous registrations (multi-account capability via the “extraregisteraccounts” setting)
  • new: UPNP NAT (better NAT handling behind UPNP capable routers)
  • new: reinvite with private media ip if no incoming audio with stun enabled (handling stun external port mismatch)
  • new: more settings such as allowcallredirect, disablesamecall, checkvolumelevel and usecommdevice
  • new: chat composing notifications and send via API_SendChatIsComposing
  • new: detailed call details (API_GetLastCallDetails)
  • new: recorded voice upload via http post (previously only FTP was available)
  • new: auto call forward on no answer (“callforwardonnoanswer” settings)
  • new: enableaudiostreams setting (set to 0 to disable audio recording and playback)
  • improvements: IM delivery robustness
  • improvements: SIP stack handle warning and diversion headers
  • improvements: stun and turn (earlier public IP discovery, doesn’t use on local LAN’s)
  • improvement: various improvements for SIP and mediaench and more native audio features on Windows OS
  • improvement: local conference RTP mixer
  • improvement: SIP proxy and registrar handling
  • improvement: VoIP logs in a separate low-priority thread
  • improvement: better proxy detection for UDP/TCP/TLS
  • improvement: various improvements for direct encrypted peer to peer media handling
  • fix: HTTP API
  • fix: config and log file management
  • fix: DNS SRV record timeout handling
  • fix: AEC for wideband speex and opus
  • fix: audio device listing
  • fix: reject double outbound calls to same destination
  • fix: more than 70 minor fixes and improvements
 

JVoIP 6.0 - Tuesday, April 11, 2017


  • new: multiple simultaneous registrations (multi-account capability via the “extraregisteraccounts” setting)
  • new: UPNP NAT (better NAT handling behind UPNP capable routers)
  • new: reinvite with private media ip if no incoming audio with stun enabled (handling stun external port mismatch)
  • new: more settings such as allowcallredirect, disablesamecall, checkvolumelevel and usecommdevice
  • new: chat composing notifications and send via API_SendChatIsComposing
  • new: detailed call details (API_GetLastCallDetails)
  • new: recorded voice upload via http post (previously only FTP was available)
  • new: auto call forward on no answer (“callforwardonnoanswer” setting)
  • improvements: sip stack handle warning and diversion headers
  • improvements: stun and turn (earlier public IP discovery, doesn’t use on local LAN’s)
  • improvement: various improvements for mediaench
  • improvement: more native audio features on Windows
  • improvement: local conference mixer
  • improvement: log in a separate low-priority thread
  • improvement: http download/upload/autoprovisioning/ssl issues bypass option
  • improvement: better proxy detection for UDP/TCP/TLS
  • improvement: various improvements for direct encrypted peer to peer media handling
  • fix: DNS SRV record timeout handling
  • fix: AEC for wideband speex and opus
  • fix: audio device list on Windows
  • fix: ptime settings for G.729
  • fix: reject double outbound calls to same destination
  • fix: more than 60 other minor fixes and improvements
 

JVoIP 5.6 - Tuesday, December 20, 2016


  • new: voice activity detection, statistics and user notifications
  • new: public universal API accessible via UDP/TCP/HTTP (clear text/XML/JSON or URL parameters)
  • new: custom skin wizard (internal)
  • new: blacklist
  • new: voice recording http upload
  • improvement: web address in manifest to avoid Java – JavaScript browser popup
  • improvement: various tunneling related changes
  • fix: SRTP
  • fix: tunnel failover to backup server
  • fix: select audio device on Windows and MAC
 

JVoIP 5.4 - Tuesday, March 17, 2015


  • new: peer to peer encrypted media
  • new: presence and contact list management
  • new: more flexible configuration
  • new: desktop mode
  • improvement: SRV DNS failover
 

JVoIP 5.0 - Saturday, February 14, 2015


  • new: stable TLS/SRTP
  • new: native audio layer for windows
  • new: integrated with the new tunneling module
  • new: a new skin template
  • improvements: API
  • fix: conference and other audio related bugs
 

JVoIP 4.8 - Saturday, March 8, 2014


  • new: opus codec
  • new: video module (“as is”)
  • new: ogg/vorbis recording
  • new: java API
  • improvement: aec
  • improvement: reregistration
  • improvement: rtp read threading
  • fix: more than 20 minor bug fixes
 

JVoIP 4.6 - Friday, February 14, 2014


  • new: skins
  • new: recording in gsm format
  • new: failowering based on SRV records
  • new: voicemail
  • new: mediaench (AEC, AGC, denoise) now available also on MAC
  • improvement: more than 40 minor improvements and bug fixes
  • improvement: JS API
  • fix: compatibility with the recent java update
  • fix: via branch bug
  • fix: other minor issues
  • fix: dtmfmode when set to 3 now sends in both formats
 

JVoIP 4.2 - Friday, December 2, 2011


  • new: denoise filter (noise suppression)
  • new: AGC (auto gain control)
  • new: the ability to set custom ringtone
  • new: call forwarding
  • new: silence detection and suppression
  • new: streaming audio file to the other end
  • improvement: AEC module complete rewrite(currently available on windows only)
  • improvement: call recording and sound playback API’s
  • improvement: new encryption for TCP and HTTP tunneling
  • improvement: API_PlaySound can play both local and remote files
  • improvement: HTTP tunneling
  • fix: address incomplete bug with INVITE
  • fix: one way audio in conference
  • fix: some minor issues with codec negotiations
 

JVoIP 4.0 - Wednesday, March 9, 2011


  • new: conferencing
  • improvement: iLBC codec (now it is enabled by default with low priority)
  • improvement: iPhone like skin example and documentation upgrade
 

JVoIP 3.8 - Saturday, February 19, 2011


  • new: voice recording
  • new: aec (automatic echo canceller -beta version)
  • new: automatic transport detection (failovering from UDP encryption -> TCP-tunneling -> HTTP)
  • new: httpsessiontimeout applet parameter
  • new: ringtimeout applet parameter
  • new: waitforunregister option
  • new: option to enable peer to peer calls (direct call to SIP URI)
  • new: various new applet parameters and API function to allow more external control
  • improvement: disabled nagle algorithm for TCP tunneling
  • improvement: auto detect audio card wideband capabilities before the first call is made
  • improvement: packet loss concealment enhancements. Plc is enabled by default
  • improvement: handling of out of order packets
  • improvement: jitter buffer fine-tuning
  • improvement: call transfer
  • improvement: bigger range for the volume control
  • improvement: thread manager
  • improvement: random UDP port for tunneling
  • improvement: autodetect direct server access possibility (while using tunneling_
  • improvement: call duration display in hh:mm:ss format
  • fix: always clear old credentials on new settings and on unregister
  • fix: API_Dtmf, API_Unregister (waitforunregister)
  • fix: iphone skin compatibility with IE, Chrome, Firefox and Safari
  • fix: codec change on reinvite
 

JVoIP 3.6 - Monday, July 5, 2010


  • new: api_playsound
  • new: ackforauthrequest
  • new: 100rel PRACK support
  • new: earlymediasend applet parameter
  • new: logtoconsole applet parameter
  • new: autoaccept applet parameter
  • new: rejectonbusy applet parameter
  • new: sendmac applet parameter
  • new: call timeout setting
  • new: API_GetVersion
  • new: API_Chat
  • new: API_TransferDialog
  • new: iPhone skin
  • improvement: show the sip display-name for incoming calls
  • improvement: receive chat messages as javascript notifications
  • improvement: call to URI (loading the server from URI and not from settings)
  • improvement: discparty parameter in CDR records
  • improvement: transfertype 3 and 4
  • improvement: http tunneling
  • improvement: java script event notifications
  • fix: background color settings in the chat and audio settings form
  • fix: one way audio on some circumstances since version 3.5
  • fix: restored compatibility with java 1.4
  • fix: authentication with empty parameters (for example empty opaque)
 

JVoIP 3.5 - Sunday, June 20, 2010


  • new: http tunneling using browser http send/receive capabilities to automatically bypass http proxies
  • new: plc algorithm (packet loss concealment)
  • new: Spanish translation
  • new: capability request applet parameter and function call
  • new: media timeout option
  • new: srv dns record lookup option
  • improvement: rtcp option
  • fix: final codec offer in ACK caused one way audio problem. Now this can be disabled with the setfinalcodec option.
  • fix: sequence number overrun caused media RTP problems after 21 minute
 

JVoIP 3.4 - Thursday, June 10, 2010


  • new: http tunneling
  • new: deployment toolkit example
  • new: DTMF RFC2833
  • new: Toolkit_with_JS.htm deployment example
  • new: easy encryption for all applet and java function string parameters
  • new: API_SetParameter function
  • new: code frame count setting
  • improvement: js and jnlp now accept jre 1.4
  • improvement: possibility to pass MD5 instead of password
  • fix: API_SendDtmf was not able to send more than one DTMF digit at once
  • fix: STUN sets external IP even on wrong conditions
 

JVoIP 3.2 - Tuesday, April 27, 2010


  • new: accept header
  • new: API_MuteEx function
  • new: jnlp documentation and examples
  • improvement: allow header now list all supported methods
  • improvement: remaining credit display timings
  • improvement: display sent dtmf digits
  • improvement: support for multiple instances
  • fix: sdp body is missing from INFO messages sending DTMF
  • fix: removed static variables to improve multithread stability
 

JVoIP 3.0 - Tuesday, February 9, 2010


  • new: g.729 codec
  • new: wideband and ultra-wideband codec
  • auto convert mono to stereo sound
  • improvement: better audio device handling (try to open all existing device on failure)
  • fix: some SIP messages don’t contain the URI in message header
 

JVoIP 2.6 - Friday, January 15, 2010


  • new: authorization name and display name parameters
  • improvement: new discontransfer applet parameter
  • improvement: OpenSIPS compatibility
  • improvement: new color parameters
  • fix: route/record-route handling in transfer, hold and disconnect
  • fix: cseq sometime is not increased for subsequent register requests
  • fix: ring not stopping on call reject/hangup
  • fix: call transfer sends wrong refer-to URI
  • fix: display registered status when not registered
 

JVoIP 2.4 - Tuesday, November 10, 2009


  • new: more options to enable/disable certain functions
  • improvement: call transfer compatibility
  • improvement: better handle reinvite requests
  • improvement: multiline status management
  • improvement: call hold and call transfer
  • improvement: changed some default GUI settings
  • fix: microphone control change bug
  • fix: some incoming calls was dropped because wrong cseq initialization
 

JVoIP 2.0 - Wednesday, October 28, 2009


  • new: multiple lines (up to 4)
  • new: select audio device
  • new: volume controls
  • improvement: attended transfer
  • improvement: extended authentication options (qop, auth-int)
  • fix: call transfer Refer-to URI brackets
  • fix: auto dial and register
  • fix: handling ACK for 200 OK
 

JVoIP 2.2 - Thursday, August 13, 2009


  • new: call hold option
  • new: default volume applet parameters
  • new: java to javascript API
  • new: javascript to java API
  • new: ringtone for incoming and outgoing calls
  • improvement: ability to enable/disable/set priority for g711 codec’s
  • fix: hold and mute sometimes disabled
  • fix: register endpoint timeout
  • fix: cdr records not sent to javascript
 

JVoIP 1.8 - Monday, June 8, 2009


  • new: mute, transfer, redial
  • improvement: handling record route
  • improvement: rtp packet replay to all request -open NAT
  • fix: via branch and to tag was kept persistent across dialogs
  • fix: save setting not worked since version 1.6
  • fix: redial
  • improvement: opening NAT at call begins by sending UDP packets to possible destinations
  • improvement: jitter buffer fine-tune and configuration possibilities
  • improvement: receiving early media (like ringtones and announcements)
 

JVoIP 1.4 - Friday, May 1, 2009


  • new: quick STUN
  • new: rtport handling
  • new: GSM codec
  • new: outbound proxy
  • new: applet parameters: signalingport, rtpport, register interval
  • fix: registration and call timeouts
  • fix: authentication sent with all request
  • fix: sip stack initialization on Vista
  • fix: sip message parser
  • improvement: jitter buffer
  • improvement: thread priority optimizations
 

JVoIP 1.2 - Wednesday, March 11, 2009


  • new: DTMF with INFO
  • new: speex codec
  • new: IM (chat) with MESSAGE method
  • new: basic presence
  • fix: sip signaling message handler
 

JVoIP 1.0 - Thursday, February 5, 2009


  • initial stable release (RFC 3261 and 2543, PCMU, PCMA)
 

JVoIP 0.8 - Sunday, December 7, 2008


  • beta version with basic SIP call functionality
 

More news and software releases can be found here.
Like our facebook page to get notified about new java sip client releases and VoIP industry news.

JVoIP