WebPhoNe Development

The webphone is one of our most important project with a quick development cycle and long term plans. We are constantly improving our web sip library, introducing new enhancements such as changes to reflect the latest industry standards, new VoIP engines, new features, bug fixes and optimizations.

All the important modules were developed by Mizutech with special care for interoperability, cross platform support, voice quality and reliability. Our focus is to provide a future proof web SIP client solution which will survive OS/browser changes and will remain a reliable high quality VoIP solution for web in the next decades. To achieve these goals, beside to bring a list of optimizations to the existing WebRTC HTML5 support, we also introduced native SIP/RTP engines to optimize voice quality and remove the WebRTC-SIP protocol conversion overhead whenever possible, thus saving precious server side resources (softswitch CPU and memory usage).

We usually push a new major release in every 5-6 months. Paid customers will always receive the latest stable release which is usually newer then the downloadable public demo.

The webphone comes with a stable API, all new versions backward compatible with the old versions (keeping all old API unchanged). 
The version number consist of 3 digits: [major].[minor].[release]
  • major version: to reflect big architecture changes (still keeping API compatibility)
  • minor version: increased for major releases
  • release version: minor changes, upgrades, bug fixes (not always listed here and when listed then later merged in major releases)
The version numbers listed here reflects the software main branch version number.
The version number for the different modules in the WebPhone might be different. So even if your webphone main version number is 2.2 for example, the included NS module version can be 1.7 for example (also there are different version numbers for the WebRTC stack or the Java engine). However all these modules get their upgrade with each new webphone release.

Major changes for the Mizu web sip client (webphone) are listed in the changelog below.


WebPhone Version History

Webphone 2.4 - Wednesday, November 29, 2017

  • new: config options: beeponincoming, stunturnonlocal, incomingcallpopup, closecall_timeout
  • new: iOS 11 / Safari 11 support with built-in WebRTC
    (old Safari versions will keep using the WebRTC plugin or the app engine)
  • new: BLF (support for Busy Lamp Field for cross-platform native SIP/RTP)
  • new: websocket ping to detect disconnects and measure delay
  • new: screensharing (screenshare and stopscreenshare API)
  • new: mutevideo and setvideodisplaysize API
  • new: option for WebRTC to connect using TCP or TLS to the SIP server (regarding the transport parameter)
  • new: autoprovisioning with opcodes
  • new: send file option on contact page (on the softphone skin)
  • new: call forward settings propagated also to server (if server API found to toggle forwarding)
  • new: HTML5 Notifications API
  • new: alias for common parameters (for example for the webrtcserveraddress now also accepts webrtcserver, webrtcaddress, rtcserver and rtcaddress)
  • new: possibility to set multiple WebRTC gateways (auto detect closest and auto failover)
  • new: notification about unregister
  • new: wideband conference
  • new: X-RTCOptions SIP header
  • new: internet connection state on failure reason display (if SIP server is on the public internet)
  • improved: ability to get notification about incoming calls even if browser is not running from the NS engine native sipstack
  • improved: Edge support
  • improved: websocket reconnect
  • improved: caller ID and display name forward
  • improved: documentation (click to call, softphone skin customization and others)
  • improved: GUI/skin related improvements, especially the softphone skin
  • improved: voicemail (display and asterisk compatibility)
  • improved: sound file size optimizations
  • improved: fast registration (optimizing all the code between startup and registered callback)
  • improved: presence
  • improved: conference mixer
  • improved: multi-line (simultaneous calls)
  • improved: NS engine upgrade procedure
  • improved: agc (auto gain control improvements)
  • improved: enable special characters for SIP password
  • improved: video call option while on the NS engine
  • improved: two kind of conference call option while using the WebRTC engine (conference rooms or switch to NS/Java)
  • improved: OPUS codec (now OPUS is the highest priority codec by default for all engines)
  • improved: handling GUI contact long press
  • improved: video (better and more flexible screen display handling)
  • improved: video recall and video reinvite
  • improved: log upload
  • improved: don't ask for microphone permission if defmute is 2
  • improved: cache media stream
  • improved: reduce volume level for DTMF sounds
  • improved: better handling of the Not Acceptable Here 488 code (quick redial with changed capabilities)
  • improved: auto accept call on media permission accept in some circumstances
  • improved: minserviceversion (added configuration options -2 and -3)
  • improved: various skin improvements when running on mobiles (responsive design, keyboard defaults)
  • improved: a long list of other minor improvements
  • fix: various register and call related bugs
  • fix: dtmf setting option
  • fix: click 2 call button too much delay
  • fix: login credentials mismatch (loaded the previous account settings)
  • fix: catch on RefreshDNSCache, catch on HostToIpExFromCache
  • fix: InetConnectionTest (when used with public server)
  • fix: multiple account register
  • fix: NS engine connectivity issues
  • fix: rejectonbusy
  • fix: number rewrite rules
  • fix: conference calls with speex
  • fix: defmute parameter now applied also for WebRTC
  • fix: various connectivity options (localhost, http vs https, websocket vs ajax, etc)
  • fix: removed unnecessary CORS requests
  • fix: registrarless usage when the register parameter is set to 0
  • fix: ability to call also when not registered
  • fix: SetHeader duplicate headers
  • fix: a list of other minor bug fix based on internal tests and users feedback
 
Webphone 2.3.1 - Friday, August 11, 2017

  • new: added capability to run WebRTC also by launching from local file system (without a web server) in Chrome
  • improved: startup time minimized via various performance related tweaks and eliminating some unnecessary wait time
  • improved: click to call related improvements
  • improved: proper failback to audio only call if video negotiation fails
  • improved: click to call user interface improvements
  • improved: gateway failover
  • fix: critical issue with the NS engine which prevented it to launch in certain circumstances (affecting new installs only)
  • fix: important issue with the WebRTC engine causing connectivity issues in some circumstances, making the webphone unusable
  • fix: launch from URL (by passing URL query parameters)
  • fix: asking twice for media permission in video calls
  • fix: delay button delays
  • fix: media teardown
 
Webphone 2.3 - Monday, August 7, 2017

  • new: websocket binary mode
  • new: background calls
  • new: getlinedetails API (to query endpoint details)
  • new: allowsipuriasusername parameter (for URI input normalization)
  • new: more API for contact management: getcontact, listcontacts
  • 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: audiodevicein/audiodeviceout/audiodevicering parameters to set predefined audio devices in controlled environments
  • new: NS engine auto-detect if tunneling needed (with quick REGISTER or NOTIFY message to the target server UDP port)
  • new: auto failover whith multiple WebRTC gateways
  • improved: voice recording quality
  • improved: websocket connection auto-reconnect and other improvements
  • improved: lot's of click to call related improvements
  • improved: engine detect improvements
  • improved: TCP tunneling on HTTP port (when UDP is not available. will use TURN only after this as a last chance)
  • improved: DTLS certificate handling
  • improved: removed old outdated localhost certificate
  • improved: always show last used peer number in number input boxes such as for transfer and conference
  • improved: simplified setting for cloud webrtc gateways
  • improved: various GUI related improvements for the softphone and click to call skins
  • improved: documentation changes
  • improved: IVR announcement playback start with some delay to don't skip first frames before ICE/DTLS negotiation completed
  • improved: call disconnect reason display and logs
  • improved: WebRTC engine on Ubuntu Chrome
  • improved: WebRTC to WebRTC video (now with direct media path whenever possible)
  • improved: insert multiple custom SIP headers
  • improved: NS engine mediaench loader (for AEC, AGC and noise suppression)
  • fix: codec transcoding bug fixes
  • fix: click to call auto-start and auto-call
  • fix: special characters in chat messages
  • fix: NS engine localhost TLS certificate issue (details)
  • fix: remember previously selected audio device with NS and Java engine
  • fix: G.729 frames time fix for voice call recording
  • fix: fixed a bug regarding NS engine lookup
  • fix: no send "compose" hint as chat message
  • fix: call disconnect issues when UDP is blocked
  • fix: call doesn't connect bug on WebRTC
  • fix: username password on conference click displayed because of salt mismatch for the auth hash
  • fix: don't send CRLF (new line) at the end of the chat messages
  • fix: unnecessary displaying "Waiting for permission"
  • fix: hold/reload sending 0.0.0.0 ipv4 address with the SDP
  • fix: voice recording cracking sounds while sender and receiver not in sync
  • fix: auth failed: missing key problem
  • known issue: call hold might not work in some circumstances with the WebRTC engine. Will be fixed in the upcoming release.
  • fix: wrong key error bug fixed
  • fix: "serveraddress not set" issue in IE
 
Webphone 2.2 - Friday, June 16, 2017

  • new: WebRTC engine for Bing browser
  • new: multiple accounts so you can register to multiple sip servers at the same time (this was achievable previously only by multiple instances)
  • new: registerex API
  • new: various new configuration options for WebRTC : bundlePolicy, iceCandidatePoolSize, iceTransportPolicy, rtcpMuxPolicy
  • new: multiple webphone instance support for the NS engine
  • new: complete rewrite for the presence module. Now with improved presence via PUBLISH/SUBSCRIBE/NOTIFY
  • new: handle multiple STUN/TURN servers
  • new: screen sharing beta
  • new: handle browser cache bypass for new versions
  • new: option to remove parties from conference room
  • new: addcontact/delcontact API
  • new: getlinedetails API
  • new: onUnRegistered callback with reason text
  • new: rating/tariff display (if announced by the server via SIP signaling or API)
  • new: option for incoming call popup notification (incomingcallnotification parameter)
  • new: WebRTC configuration for echo cancellation, autogain control, noise suppression
  • improved: conference (the conference api works now via conf rooms if direct conference functionality is not available)
  • improved: simplify incoming call UI for multi-lines: for incoming multiline calls 3 buttons: accept,reject,... (open menu)
  • improved: video (video placeholder)
  • improved: dtmf handle the space character as 1 sec pause
  • improved: voice recording (better documentation and example, always using the “file” form parameter)
  • improved: class/module structure rewrite and optimizations
  • improved: removed RequireJS async load. Now the js files are loaded statically resolving all related incompatibility issues
  • improved: responsive design for the html skins (including the softphone skin)
  • improved: click to call sample
  • improved: the Java engine was updated to conform to latest Oracle requirements regarding the code signature handling
  • improved: ns engine auto install and auto detect
  • improved: various GUI related improvements for the softphone.html, click to call and demo pages
  • improved: handle "null" for webrtcserveraddress (to not load the old setting)
  • improved: accept ice/stun/turn parameters in multiple formats
  • improved: better handle DND presence state (do not disturb)
  • improved: better handle invisible presence: send status only once until status doesn't change to something else
  • improved: auto-hold
  • improved: better number normalizations
  • improved: accept both getsipheader("Header") getsipheader("Header:") formats
  • improved: auto login only if there was no any issue last time (otherwise stop at the login screen)
  • improved: skin displays previous disconnect reason
  • improved: other WebRTC related improvements
  • change: softphone skin auto login only if there was no any issue last time (otherwise stop at the login screen so the enduser might change the engine)
  • change: rename getEvents to onEvents(callback); move getEvents to api_helper (so getEvents is still supported)
  • fix: jQuery $ compatibility problems with other JS libraries (solved by changing the namespace)
  • fix: skin displays previous disconnect reason
  • fix: auth wrong key issue
  • fix: "register failed" issue when going to settings
  • fix: remove account on Accounts page reload issue
  • fix: softphone skin scroll (appeared also when not needed)
  • fix: onCallStateChange sometimes not called due to a js error
  • fix: chat message disappear bug
  • fix: call page never auto close bug
  • fix: mute() should mute also the speaker if called with parameter 0 or 1
  • fix: webrtc bug: if we hangup immediately after call(), Finished and Call Finished statuses are not delivered
  • fix: softphone.html login form once click on the menu, can't click to other place anymore to hide it
  • fix: various other bug fixes triggered by internal tests and bug reports from existing customers
  • fix: stop the ns service while the webphone is running. it remains in "registered" status forever
  • fix: scurl_parameters issues
  • fix: IE compatibility issues
  • fix: various skin related issues

 
Webphone 2.1 - Wednesday, March 15, 2017

  • this is a minor release containing only a few bug fixes and optimizations over the previous v.2.0 release (no new features)

 
Webphone 2.0 - Wednesday, February 22, 2017

  • new: getsipmessage API
  • new: allowcallredirect parameter
  • new: playdtmfsound parameter
  • new: onDisplay callback
  • new: earlymedia parameter
  • new: server/user-agent based licensing for the gold version
  • new: option to disable all toasts/popups
  • new: muteholdalllines parameter
  • improvement: multi-line; a lot of improvements regarding line management
  • improved: setline() now accepts also peer phonenumber or sip call-id
  • improved: conference API add parameter and other conference related
  • improved: call transfer and forward between SIP and WebRTC (and inverse)
  • improved: more robust un-register
  • improved: cookie and indexDB localforage
  • improved: call setup without recording device (no microphone)
  • improved: NS engine once click installer improvements and auto-configuration
  • improved: Safari compatibility
  • improved: handle Firefox 52+ no Java/NPAPI support
  • improved: playsound API
  • improved: get the call disconnect reason on hangup (from SIP disc. code but also from Reason and Warning headers)
  • fix: WebRTC-SIP converter blind accept any username/password in registrations (now properly forward as SIP REGISTER with digest authentication)
  • fix: ice timeout
  • fix: IsRegistered
  • fix: don't touch the NS engine if not needed
  • fix: globalline defaults to -1 if not multiline
  • fix: webphone_api.voicerecord
  • fix: getsipheader mixed up bug
  • fix: call timer display
  • fix: accidental call disconnects
  • fix: IE 7 and IE 8 compatibility
  • fix: password sometime encoded incorrectly
  • fix: username vs sipusername
  • fix: SendDtmf ReferenceError: message is not defined
  • fix: settings management
  • fix: garbage characters in balance display (credit/currency)
  • fix: NS engine XP and vista compatibility
  • fix: NS engine compatibility with x32 (32 bit) OS versions
  • fix: NS engine compatibility with non-english Windows versions
  • fix: autologin not working if server/user/password is set
  • fix: if username or password is preset then don't display user/pwd input for the softphone skin
  • numerous other improvements and minor bug fixes

 
Webphone 1.9 - Saturday, December 24, 2016

  • new: no need to explicitly set the webphonebasedir anymore as it is always guessed correctly from now
  • new: call forward and transfer now works between SIP and WebRTC endpoints
  • new: NS self-upgrade in background capability (with no user interaction required)
  • new: checkmicrophone setting
  • new: global instance (ability to use the same webphone instance on multiple webpages opened in different tabs/windows in the client browser)
  • new: call recover with redial on no or bad response
  • new: MAC OS webrtc plugin as pkg (webrtcplugin.pkg)
  • new: capability to initiate calls even if not registered, registrar disabled or register failed
  • new: more call details onCdr such as displayname and call disconnect reason
  • improved: better audio/camera recording permission handling
  • improved: TURN and TCP candidates (now it works in all circumstances with WebRTC)
  • improved: WebRTC-SIP protocol conversion
  • improved: WebRTC-SIP codec conversion (for example Opus to G.729 and inverse)
  • improved: Android app engine
  • improved: better aec and denoise
  • improved: update to latest OpenSSL for the WebRTC DTLS and websocket TLS
  • improved: settings management (now the server side settings from webphone_js.api are applied immediately and exactly as-is)
  • improved: more flexible parameter handling (handle when pass number as string or bool as number and others)
  • improved: auto hide disconnected call page after some time
  • improved: click-to-call related improvements
  • improved: Asterisk WebRTC auto discover
  • improved: registerless usage (register=0)
  • improved: permissible demo license limitations
  • improved: WebRTC trickle ICE
  • improved: chat reliability
  • improved: number rewrite rules
  • improved: call divert now propagated also to server side (will safely handle servers with no such support)
  • improved: usage without sipserver (call to sip uri should work; serverless peer to peer functionality)
  • fix: click-to-call related bugs
  • fix: autostart: 0, start and register only when clicked
  • fix: mute() should mute also the speaker if called with parameter 0 or 1; also webrtc mute is fixed now
  • fix: on hold fail, call is disconnected, but the disconnect is not discovered by the GUI
  • fix: send dtmf while in webrtc call doesn't display any feedback
  • fix: keypress events
  • fix: loading cached old settings problem
  • fix: ERROR, catch on common: ParamAsBool ReferenceError: isNumber is not defined (isNumber is not defined)
  • fix: ERROR, catch on notifications: ProcessNotifications, not: STATUS,1,Finished ReferenceError: GetParameter is not defined
  • fix: WRTC, ERROR, InvalidAccessError: RTCPeerConnection constructor passed invalid RTCConfiguration
  • fix: flash engine offer only if no any other better choice
  • fix: java no applethandle after going to settings and back (maybe go to settings and select java engine even if selected)
  • fix: settings not always read correctly if webphone is used as SDK and this causes discrepancies in engine selection
  • fix: detailed loglevel fixed
  • fix: call start while webphone is initializing
  • fix: video chat one side only now fixed
  • fix: call recording with WebRTC engine

 
Webphone 1.8 - Monday, November 28, 2016

  • new: MAC OS WebRTC plugin
  • new: multi-line (manage multiple simultaneous calls)
  • new: ICE TCP candidate (RFC 6544)
  • new: UPNP NAT for NS and Java engines (better NAT handling behind UPNP capable routers)
  • new: redial or re-INVITE on fast call failure or on no media with changed stun and codec
  • new: auto call forward on no answer (“callforwardonnoanswer” setting)
  • new: more settings such as language, disablesamecall, checkvolumelevel, inbounddtmf , outbounddtmf, usecommdevice, etc
  • new: stop() and getworkdir() api
  • new: auto NS service upgrade in background (only if NS is actually used and only to known good new versions)
  • improved: DTMF between SIP and WebRTC (both INFO and RFC 2866 are supported)
  • improved: stun and turn (earlier public IP discovery, doesn’t use on local LAN’s)
  • improved: more native audio features on Windows
  • improved: http/https view/api/download/upload/autoprovisioning (autodetect, https-http proxy and ssl bypass options)
  • improved: fast init with no more delays when coming from settings and engine init speedups
  • improved: fast cleanup and exit for the java engine
  • improved: conference for WebRTC
  • improved: NS engine auto upgrade
  • improved: iOS app engine via SIP softphone
  • improved: various transfer related improvements including WebRTC to SIP call transfer
  • improved: usage from behind NAT or firewalls (now capable to use both TURN and TCP candidates if UDP is blocked)
  • improved: various other WebRTC-SIP related improvements
  • improved: documentation
  • fix: embed in webpage related issues and webphonebasedir
  • fix: onRegistered to catch all SIP register events
  • fix: settings save/load, keep last good VoIP method
  • fix: chat between SIP and WebRTC
  • fix: file transfer related bugs
  • fix: flash VoIP engine only when really necessary (no any other options)
  • fix: DNS SRV record timeout handling
  • fix: fixed problem with AEC for wideband speex and opus with NS and Java
  • fix: audio device list on Windows
  • fix: ptime settings for G.729
  • fix: reject double outbound calls to same destination
  • fix: various GUI related bugs on the softphone skin
  • fix: various auto engine detect, prioritization and usage related bugs
  • fix: more than 110 other minor fixes and improvements

 
Webphone 1.6 - Friday, July 1, 2016

  • new: video
  • new: conference rooms (server assisted)
  • new: audio device list, get, set functions
  • new: web call-me
  • new: peer to peer media auto discover
  • new: call forward
  • new: auto WebRTC server discovery (for example it can detect automatically if webrtc is enabled in Asterisk and other servers)
  • new: softphone skin now can be inserted also in a DIV (previously it was working only in iframe)
  • new: callback (you can specify a callbacknumber parameter if your server has a callback access number)
  • new: sip outbound proxy setting
  • new: call transfer options
  • new: CDR records after calls (can be easily posted to server API)
  • new: group chat
  • improved: webrtc engine
  • improved: click to call
  • improved: presence
  • improved: voicemail
  • improved: conference
  • improved: voice recording
  • improved: android native dialer auto-configuration
  • improved: themes (color theme/skinning)
  • improved: TURN and STUN handling and auto-discovery
  • improved: user interface integration (div, popup, flying, others)
  • improved: chat (reliability, smiles, file-transfer, groups)
  • improved: NS engine versioning and auto upgrade
  • fix: voip engine auto select related issues, settings save/restore
  • fix: init delay
  • fix: ns engine localhost certificate, https/wss issues
  • fix: more than 44 bug-fixes mostly based on customer feedback and additional tests
  • the old documentation for this version can be found here

 
Webphone 1.5 - Wednesday, April 27, 2016

  • new: call recording (voicerecupload)
  • new: 8 new call-divert related settings and API’s
  • new: callcenter integration
  • improved: engine selection
  • improved: VoIP over TCP using TURN only when necessary
  • improved: usage on local LAN’s
  • improved: WebRTC (various fixes)
  • fix: auto engine select related bugs, unnecessary java popups
  • fix: NS engine discover issues
  • fix: mute/unmute, hold/unhold
  • fix: CTRL+C, CTRL+V in the softphone skin
  • more than 20 other bug fixes and small improvements especially engine detect/choose related

 
Webphone 1.4 - Monday, April 11, 2016

  • new: WebRTC to SIP gateway (free as both software and service for all our web sip library customers)
  • new: TURN (WebRTC works now even if all UDP is blocked and only port TCP 80 is allowed)
  • new: auto codec convert when necessary (for example to G.729 from WebRTC)
  • new: App engines for iOS and Android
  • new: WebRTC on Android
  • new: HTTP to HTTPS gateway (used automatically if hosting website is not secure which is required by Chrome for WebRTC)
  • new: WebRTC caller-id
  • improved: WebRTC NAT handling
  • improved: STUN
  • improved: end to end encryption
  • improved: softphone skin
  • fix: java freezing improvements
  • fix: WebRTC caller-id

 
Webphone 1.3 - Friday, February 5, 2016

  • new: audio device selection
  • new: favorite or block contact
  • new: setsipheader/getsipheader
  • improved: capability call special url's on events (server API integration)
  • improved: number rewrite rules
  • improved: feedback for file transfer
  • fix: ns engine unregister on webpage close
  • fix: increase cseq for re-invite
  • other improvements and bug fixes

 
Webphone 1.2 - Monday, January 18, 2016

  • callback API for simplified API (use simple call back instead of notification string parsing)
  • server API for the webphone state machine (so you can easily catch all important events from server code)
  • WebRTC engine upgrade to latest version
  • presence (not fully standard compliant yet but working)
  • added file transfer
  • new missed call/chat notifications
  • http vs https bug fixes
  • NS engine availability from https
  • reset setting parameter and API
  • last call detailed statistics
  • called number normalization
  • one-way audio fix on WebRTC
  • WebRTC fix for Android
  • many other improvements and bug fixes

 
Webphone 1.0 - Friday, November 6, 2015

  • new: flash engine
  • WebRTC improvements
  • stable API, modules and file structure
  • improved auto engine selection
  • chat
  • app engine
  • secondary engines (p2p, native dial, callback)
  • custom builds based on customer settings

 
Webphone 0.9 - Wednesday, September 9, 2015

  • call-divert functionalities (voicemail, transfer, others)
  • conference
  • NS (Native Service or Plugin)
  • examples and documentation
  • better skinning
  • better OS/browser handling
  • automatic engine selection
  • WebRTC stable incoming and outgoing calls
  • upgrade to latest Java Applet and WebRTC engine
  • more JavaScript SIP API

 
Webphone 0.6 - Friday, July 3, 2015

  • engines: WebRTC beta and Java Applet v.1.0
  • more SIP settings
  • early beta version with basic SIP call functionality

 
Webphone 0.2 - Thursday, February 12, 2015

  • internal beta version with basic skin and basic call functionality

 

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

WebPhone