Reference13r1:Release Notes SDK

From innovaphone wiki
Jump to navigation Jump to search
There are also other versions of this article available: Reference13r1 (this version) | Reference13r2 | Reference13r3 | Reference14r1

This is the SDK 13r1 Release Notes Document.

Service Releases are planned for the second monday each month.

Please see the disclaimer before using the information presented here!

SDK 13r1

13r1 Service Release 1 (131908)

57358 - Template App crash, when websocket connection from PBX is lost

Bug in the badgecount_signaling library. The JsonApi was not unregisted in destructor, so it was cleanup was done again in AppWebsocket destructor

57906 - Trap in SDK Template App on unexpected Websocket close

SQL operation complete could result in use of a closed websocket connection

13r1 Service Release 2 (131930)

57987 - HTTPClient can crash if connect is called multiple times

When calling connect() and the URL canot be resolved, the next call to connect() could lead to a crash.

13r1 Service Release 3 (131963)

58277 - Added database tutorial to SDK doc

58638 - App Devices: documentation for com.innovaphone.devices and com.innovaphone.devicesui

Missing documenation added.

57985 - App Platform Webserver: Change behaviour of Recv() for all requests that send data

Make sure that if Recv() requests more data than still is available, that the rest of available data will be read (even if it is less), or the connection will lock up.

58577 - App Platform: Database callbacks weren't always asynchronous

Database calls called after calling Shutdown resulted in synchronous callbacks which could lead to traps.
These callbacks are now also async.

58191 - App Reporting: Clear phone call history if call list has been cleared in call list app

Calllist-API has got a new messge type: { "mt": "Clear" }
If received, Phone-App and Softphone-App clear their call history also.

58272 - Build apps with buildnum.bat to have a new version for every build

58635 - Devices API: GetPhones and GetDects messages added and last boolean

Phone and dect devices can be now retrieved through the devices API.

In addition, the response message now contains a "last" boolean which indicates, when the last device has been received.

53987 - Documentation for interface - command.h

38096 - Documentation for interface - process.h

38097 - Documentation for interface - task.h

38075 - Documentation for lib - database_switch.h

Reworked documentation.

58587 - Documentation of recording with recording URL

Documentation added to SDK

58586 - Fixed documentation links

58538 - Make extension installable for VS 2019

58863 - MySQL driver: fixed double DatabaseError callback on SQL errors

58865 - MySQL driver: fixed possible trap on database shutdown

58576 - New API "com.innovaphone.phoneinfo"

This API is used for communication with phone/softphone apps.
This API is closely related to API "".
If an App provides this API it receives messages "CallAdded" and "CallUpdated" and "CallRemoved".
An App can provide call-related display information to the phone app (e.g. about remote party).

58532 - Phone App: API to show call-related information provided by other apps

Extension to API "".
Added support for message type "CallInfo".
Any app can send this message to Phone-App or Softphone-App in order to display information at a given call.
E.g. information related to the remote party.

58609 - SDK docu: Fixed typo in sdk.htm

"toturial" instead of "tutorial"

58401 - SDK: Add switching of language to template1

Changing the language while the app is running was not implemented. Switching colors was already done.

58441 - SDK: Add tutorial for client APIs

A tutorial that demonstrates:
* How to display profile pictures using the innovaphone.Avatar library
* How to start phone calls using
* How to do presence monitoring using com.innovaphone.client

58456 - SDK: Possibility to set badge counts from running apps

Use start.setBadge to set a badge count.
The implementation was added to myApps and is used by the phone app.

58298 - SDK: Tutorial for handling HTTP requests

Tutorial: HTTP requests

can be found under sdk/doc/tutorials/HttpRequests.htm

59059 - SDK: Tutorial to use the Search API from Javascript

The tutorial explains how to consume search API providers.

58297 - Template: Trap on HTTP requests other than GET

plugin->Cancel(WSP_CANCEL_NOT_FOUND) is only called on GET requests.

So on any other request like PUT or POST the app crashes with an assert.

58608 - UI1: Add method chaining capability to more functions of nodePrototype

Now method chaining can be also used with:

* addText
* addHTML
* clear
* remEvent
* setClass
* addClass
* remClass
* setNoSelect
* makeUnselectable
* setDisabled


var button = this.add(new innovaphone.ui1.Div()).addText("OK").addClass("button").addEvent("click", function () {});

58281 - Use override keyword for virtual function overrides in template1_tasks.h

13r1 Service Release 4 (132035)

59087 - Added innovaphone.ui1.Scrolling scrollIntoView function

The function scrollIntoView(node, scrollIntoViewOptions) scrolls to the specified node.
Depending on the used browser, the dom node scrollIntoView function is directly used (Webkit browsers) with the optional scrollIntoViewOptions or an own implementation (Firefox, Edge) is used for browsers which do not support scrollbar styling yet.

59040 - Javascript AppWebsocket lib, did not work for external website

When the AppWebsocket lib was used not in an iframe but in the top window, always a prompt for login was displayed, but it should be possible to get the login from the webserver

59274 - Sign innovaphoneSDKSetup.exe

The exe file is now signed. Maybe antivirus tools won't complain anymore now ...

59039 - Tutorial to integrate an external web service as App in innovaphone myApps

Uses a sample web service implemented on an App Service to demonstrate how any other web serice using any technology can be integrated as App into the innovaphone myApps client

59041 - Tutorial to use RCC from an external Web Page

As a example of how to use PBX APIs from an external web page in general

13r1 Service Release 6 (132105)

62481 - Fixed not compiling Apps with PATH variable which contains sh.exe

If the PATH variable contained folders with other sh.exe, the apps didn't build with the SDK.

62809 - Use native browser scrollbar styling for Firefox

The innovaphone.ui1.scrolling class now uses the browser native styling for scrollbars.

13r1 Service Release 7 (132134)

63683 - The SMTP client sometimes didn't trigger TaskComplete/TaskFailed

Like this, an application could hang waiting for the TaskComplete/TaskFailed which was never triggered.

13r1 Service Release 8 (132195)

64503 - Fixed wrong titillium font path in documentation

65012 - HttpClient in apps used wrong Content-Length header for POST with digest/basic auth

64246 - IHTTPClient::Create now accepts an optional IDns instance

If a certain IDns instance is handed to an IHTTPClient::Create resources can be saved.

64905 - mysql database shutdown may caused missing database callbacks

65162 - Remove BOM from htm files when writing manifest before HTML content

The htm files were broken when the manifest was written before the htm file and the htm file contained a BOM.

The BOM is now always removed.

64502 - Sysclient protocol documentation added


13r1 Service Release 9 (132229)

65446 - FileSystem::RemoveDirectory could be slow

66555 - innovaphone.lib1: Small compatibility fix for interworking with very old myApps client versions

Avoid a javascript error on the ApiUpdate message, if a very old version of the PBX/myApps client is used together with a current app.

65798 - mySQL driver: potential trap on SQL errors fixed

66355 - RCC-API: Missing dn (display-name) in leg2 info in "CallInfo" message

Display name was missing of that user/object which forwarded the call to me.

66357 - SDK installed to a directory containing spaces in path name breaks compiling

66646 - SDK: Change description text of SOAP in reference.htm

Old: "In the future this legacy API will be ported to a Websocket interface."

New: "Please note that the functionality of that legacy API is available using the Websocket APIs RCC and PbxAdminAPI."

66250 - SDK: Documentation for push app protocol

Documented the protocol between the push object and the innovaphone push app.
See: sdk/doc/protocol/push.htm

13r1 Service Release 10 (132263)

66955 - Http Client interface: removed HTTP_SHUTDOWN_BY_PEER reason

This reason code was also triggered in OK cases, not just in error cases.
The code isn't needed anymore now.

67072 - VS Plugin: fixed exception in Visual Studio Plugin that could occure when opening an non innovaphone SDK project

13r1 Service Release 11 (132291)

67992 - Added project root directory to the include directories of the compiler

Added -I . to the INCLUDES variable inside sdk-defs.mak

68032 - Apps/myApps/SDK: Use sans-serif as fallback font instead of Open Sans

For unicode characters that are not included in the titillium font, we use fallback fonts.

Before this fix it was:
font-family: titillium, 'Open Sans', sans-serif;

Now it is:
font-family: titillium, sans-serif;

The reason is that the software does not include the Open Sans font, so variants of Open Sans are used that are randomly installed on the users system. This could lead to undesired italic or bold text.

68392 - AppWebsocket: Fix exponential backoff for reconnect

The exponential backoff did not work in case of login failures, so the library reconnected each second.

68416 - PbxAdminApi: Fix for potential trap

13r1 Service Release 12 (132357)

67453 - App Webserver and IWebserverPlugin didn't support transfer of files > 4GB

A protocol change was required to support the download/upload of files greater than 4 GB (e.g. to restore backups).

This also required a change in common SDK functions in the file sdk/common/interface/webserver_plugin.h.
You need to change your code, otherwise your App won't compile/work correctly anymore:

* UWebserverPlugin::WebserverPluginHttpListenResult dataSize is now ulong64 instead of size_t
* UWebserverPlugin::WebserverPluginPassthroughListenResult dataSize is now ulong64 instead of size_t
* IWebserverPost::GetDataSize now returns ulong64 instead of size_t
* IWebserverPut::GetDataSize now returns ulong64 instead of size_t
* IWebserverPropfind::GetDataSize now returns ulong64 instead of size_t

68456 - ITimerAbsolute might have failed to start

If the handed long64 value was too large, the __time_t value wrapped and the starting of the timer failed.
Now the value is set to the max of __time_t if it is higher.

70063 - Print database debug logs when posting a new command while an other is still active

69902 - SDK/PBX Manager: Add new parameter includeMatch to PbxAdminApi message SearchUsers

Specifying includeMatch allows finding objects that excactly match the specified cn. Omitting the includeMatch parameter allows enumerating all objects. See the SDK documentation for details.

The new parameter is now used in the PBX Manager Plugins "Groups" and "Waiting Queues".

69760 - SDK: Doumentation of AppWebsocket: Describe the different types of websocket connctions

13r1 Service Release 13 (132394)

71577 - myApps/SDK: Add detection for new Edge browser

Microsoft released a new version of Edge that is based on Chromium/Webkit. This fix adds the new user agent string to existing browser detection code.

For example the browser detection is used for displaying the browser name of sessions under account security in myApps.

72711 - PBX Manager plugin of template apps didn't work

Due to wrong casing in some source code files, the PBX Manager plugin of the template app didn't work:

- lowercase "admin" in function AppServiceApps
appList->push_back(new AppServiceApp("company-appnameadmin"));
- lowercase strings in function AppInstancePlugins:
pluginList->push_back(new AppInstancePlugin("company.appnamemanager", "company-appname.png", "company.appnamemanagertexts"));

- must be lowercase in the whole file
- company.appnamemanagertexts must be lowercase in the whole file
- "/company-appnameadmin" must be lowercase too
- remove the lines which just contain "var appname = [];" and "appname=[];", as these break the code too

- company.appnamemanagertexts must be lowercase in the whole file

72371 - SDK Installer: Sometimes extracted files are destroyed

mehr Kontrolle für das .NET FrameWork). Muss weiter beobachtet werden.

72370 - SDK Installer: Visual Studio Extension installation failed if user name containes spaces

72837 - SDK: Add documentation for base attribute of JsonApi::Message

72450 - SDK: Add innovaphone.ui1.nodePrototype.setAttribute

Method to set attributes of HTML nodes. Supports the method chaining syntax.

70476 - SDK: Additional documentation for myApps protocol

Added documentation for the "Authenticate" and "Authorize" message.
Additional documentation for the "LoginResult" message in error cases.

72200 - SDK: Fix documentation for PBX API "Replication"

The "columns" attribute was described as an array. Actually it is an object.

72231 - SDK: Fix documentation for PbxAdminApi

The message type of "GetPbxConfig" was erroneously written as "GetPBXConfig" (wrong case).

72281 - SDK: new innovaphone.ui1.Node prototype function setStyle

New function setStyle(property, value), e.g. setStyle("display", "none").

13r1 Service Release 14 (132425)

73702 - SDK: KeepAlive mechanism did not work for AppWebsocket connections on app platform

Enabling the KeepAlive mechanism led to disconnecting websocket connections to the app service.

73233 - SDK: Remove outdated message definition from docu of appwebsocket javascript library

Instead a link to the protocol definition is added.

73295 - tasks_postgresql.htm: added hint about table names

Tablenames with upper case letters or spaces etc. must be wrapped inside double quotes in own queries.

73493 - Write logs to logfile during debugging not just to STDOUT

13r1 Service Release 15 (132455)

74625 - PBX RCC Api: Add functionality to monitor all PBX calls

New property "calls" in Initialize to turn on CallAdd, CallDelete and CallUpdate indications

73956 - SMTP client: sending mails with attachments might not work

13r1 Service Release 16 (132496)

75060 - AppWebsocket: prevent possible traps when calling AppWebsocketLoginComplete during shutdown

Calling AppWebsocketLoginComplete/AppWebsocketCheckLoginComplete caused a trap if the underlying websocket connection was already closed.

75719 - MySQL: prepared statement might return string values from previous executions

If a prepared statement ran multiple times and first returned non NULL values for strings but should return NULL values at a second run, the second run returned the previous non NULL values.

75284 - MySQL: prevent missing DatabaseShutdown if shutdown is triggered within a transaction

If a database shutdown is triggered while a transaction was running a DatabaseShutdown was never fired.

75720 - MySQL: support for BLOB data type

75768 - PDF: enhanced functionality to create PDFs

13r1 Service Release 17 (132523)

76357 - Add code example to replicator tutorial

76028 - HTTPClient: new parameter ISocketContext for the create function

Allows handing of an ISocketContext to the HTTPClient::Create function.
The ISocketContext allows setting of a certain client certificate or disabling sending of a client certificate at all.

76148 - innovaphone.ui1.js: new innovaphone.ui1.Password field

Password field with show password button.

76474 - SDK: Add JSON files structure definition to the How To article

13r1 Service Release 18 (132592)

78096 - Database drivers: added support for %f format specifier (double values)

100073 - MySQL database GetULong64/GetLong64/GetUInt/GetInt returned wrong values depending on column type

77923 - PostgreSQL: prevent possible trap on race condition in error shutdown state

An App might have trapped due to a race condition in the PostgreSQL implementation if the database connection has been terminated with an error state.

77577 - SDK: Fix document title of PbxTableUsers.htm and PbxAdminApi.htm in documentation

78227 - Webserver/Plugin: added support for text/csv downloads

new wsr_type_t::WSP_RESPONSE_CSV

13r1 Service Release 19 (132613)

101423 - Config lib deleted database if saving managed items and then unmanaged ones.

100899 - DBFiles may crash on DatabaseError callbacks in PathInfo tasks

As database errors just occur in rare cases (database not available anymore etc.), this issue shouldn't happen often at all.

101038 - PostgreSQL driver may cause invalid reads in iomux

A race condition may caused iomux to access the already deleted database object.

13r1 Service Release 20 (132628)

101385 - Database: changed debug logs for queued commands

101639 - SDK extension: fixed HTTP PBX request

13r1 Service Release 21 (132678)

102001 - json_io: added support for double

New functions add_double/get_double.

13r1 Service Release 23 (132833)

105427 - Added ALPN support in TLS sockets

Adde application layer protocol support for TLS sockets within ISocketContext.

105092 - AppWebsocket documentation updated: encrypt/decrypt functions

104971 - Fixed traps in server side string translations if nullptr is handed as char * value

105426 - httplib: extended http result code functionality

Added converting functionality and more supported status codes.

106959 - SDK: Start page of SDK documentation should name the related SDK major version

Needed, because with the 13r2 release we will have two versions (13r1 and 13r2).

13r1 Service Release 24 (132852)

13r1 Service Release 25 (132894)

107214 - MySQL driver caused crashes for certain database requests

If a dataset, created by single row mode ExecSql, has been deleted before it was EoT, a double free may caused a crash.

13r1 Service Release 26 (132940)

108826 - Documentation of PbxInfo message (AppWebsocket protocol)

This message is sent by the PBX on outgoing websocket connections to app services.

The documentation was added to AppWebsocket.htm.

109183 - SDK docu: Fix broken links

Fixed broken links in the html files of the SDK docu.

13r1 Service Release 27 (132972)

13r1 Service Release 28 (133012)

13r1 Service Release 29 (133032)

113542 - Replicator: clarified documentation for createReplicator and Update

113604 - SDK docu: add chapter about app licensing

Added a new chapter that describes the different options for licensing your app including code examples for the license check.

13r1 Service Release 30 (133045)

13r1 Service Release 31 (133049)

13r1 Service Release 32 (133058)

115266 - IDns: Avoid access to already deleted memory

In IDns::GetHostByName requests with the "all" parameter set to true, there was a bug in the library causing access to already deleted memory. 

115704 - SDK docu: added tutorial to migrate from SDK V13r1 to SDK V13r2

The scope of the tutorial is to migrate an existing VisualStudio project from SDK V13r1 to SDK V13r2.

115410 - SDK documenatation: innovaphone.appwebsocket.Connection description for parameters password and domain added

13r1 Service Release 33 (133067)

116278 - myApps: Allow clipboard-write for app iframes

So that apps can copy text to the clipboard using the Clipboard API.

<iframe allow="...; clipboard-read">

13r1 Service Release 34 (133088)

117723 - innovaphone SDK setup: Fixed an missleading error message during setup

118187 - innovaphone SDK: Fixed an error in version number handling

13r1 Service Release 35 (133100)

13r1 Service Release 36 (133103)

13r1 Service Release 37 (133110)

13r1 Service Release 38 (133112)

13r1 Service Release 39 (133114)

13r1 Service Release 40 (133116)

13r1 Service Release 41 (133121)

112490 - Debug log output for prepared SQL statements was wrong

13r1 Service Release 42

13r1 Service Release 45 (133139)