Reference13r2:Release Notes SDK

From innovaphone wiki
Revision as of 09:49, 30 June 2021 by Dde (talk | contribs) (Protected "Reference13r2:Release Notes SDK" [edit=sysop:move=sysop])
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
There are also other versions of this article available: Reference13r1 | Reference13r2 (this version) | Reference13r3 | Reference14r1 | Reference14r2

This is the SDK 13r2 Release Notes Document.

Service Releases are planned for the second monday each month.

Please see the disclaimer before using the information presented here!

SDK 13r2

13r2 Service Release 1 (136122)

111701 - Added remTranslation() to ui1 lib

Corresponding function to addTranslation().

Removes an ui element from translator object.

112307 - IHTTPClient::SetTimeout to support timeouts for HTTP requests

111852 - PbxApi: Added support for "AddProfile" and "DelProfile" and "UpdateProfile"

Added support for "AddProfile" and "DelProfile" and "UpdateProfile" to PbxApi

112273 - SDK: Fix for segmentation fault in JavaScript Runtime when receiving big messages using JsonApi

The internal buffer size of the JsonApi library was smaller than the maximum websocket message size.

112364 - SDK: HttpClient (JavaScript) - Add additional timeout and error handling

  • The timeout of the HttpClient object can now be set.
  • The HttpClientRequest object now has a dedicated onerror callback that can be used to detect timeouts and other connection issues.

13r2 Service Release 2 (136146)

112490 - Debug log output for prepared SQL statements was wrong

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.

113514 - SDK docu: clarify usage of modes in JavaScript Runtime

The documentation stated that modes are configured using the URI of the app object.

It should state that modes are configured using the name of the app object.

113621 - SDK: JsonApi (JavaScript) - Add unlicensed property

Possibility to check if a JsonApiConnection is licensed.

113612 - Template for JS apps: Include SVG library into html files

13r2 Service Release 3 (136155)

114362 - Fixed a wrong description in Config JavaScript documentation

13r2 Service Release 4 (136164)

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. 

13r2 Service Release 5 (136185)

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.

115606 - SDK docu: JSON API Framework Documentation extended by an example

Example Code chapter added with a simple JSON API implementation.

115492 - SDK docu: service APIs configuration in the JavaScript Runtime

Added a description for service APIs configuration in the JavaScript Runtime

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

115417 - Support for AppInfo hidden element in the JavaScript Runtime

The hidden flag can now be configured in the config.json.

115019 - Support for service APIs in the JavaScript Runtime

New section "serviceApis" in config.json, similar to the "apis" section.

13r2 Service Release 6 (136223)

116817 - Extended documented for com.innovaphone.devices

Added some further messages GetDomains, GetDevices and GetFilteredDevices

116091 - JavaScript Runtime: Rework handling of build number and label from

  • The build number from the build.txt is now displayed in the AP manager (instead of the build number of the used JavaScript Runtime).
  • The label to be displayed in the AP manager can now be defined using a label.txt file.

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">

116139 - SDK docu: Typos fixed in the App Development Guide

Various typos in the documentation

116867 - SDK docu: updated FAQ in the getting started tutorial

Updated FAQ and fixed typos.

116900 - SDK docu: V13r1 o V13r2 project update turorial fixed

Various corrections in the documentation 

116238 - SDK: added batch build for JS apps

Added batch build script for release builds. Supports setting build number and release state label for JavaScript Runtime apps.

116028 - SDK: admin app name check fixed in the C++ template

App service checked for "manufacturer-template1Admin" app name, but registered "manufacturer-template1admin", so no counter reset via admin app was possible.

116148 - SDK: support for RELEASE_STATE environment variable

To be able to set Release State Label via environment variable

13r2 Service Release 7 (136254)

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

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

118047 - JavaScript: Avoid trap when sending too big messages

The following functions now give a JS error, if the application sends messages bigger than 65535 bytes in a single message:




117651 - PBX RCC: Add timestamp when call was started to Call-Info

So that the duration of the call can be displayed even if the App was started after start of call

117036 - SDK docu: added App Store Guide

Tutorial about preparing and publishing an App on the innovaphone App Store

117852 - SDK docu: extend UI1 Lib documentation by Web Browser Information

Documentation extended by the description of the Web Browser Information object (innovaphone.ui1.lib.browser) that contains client related information.

117851 - SDK docu: fixes in the PbxAdminApi documentation

Typos and missing values fixed.

117731 - SDK: Make login info available at JsonApiConnection object


const char * IJsonApiConnection::JsonApiInfo()


The info contains a string representation of the login information. It can be used to get additional info like the user's PBX.

117798 - Template for JS apps: fixed reference path for JavaScript intellisense

Adjusted reference path to v13r2 SDK folder structure.

13r2 Service Release 8 (136268)

118761 - Added services API to reference documentation

118468 - FileSystem::WriteBinaryFile to write binary data

And update documentation of WriteWholeFile with obsolete

13r2 Service Release 9 (136330)

119573 - JavaScript: Support for impersonation in PbxApi

Added function PbxApiConnection.create(targetApi)

  • Returns a new PbxApiConnection object for a given targetApi string.
  • This mechanism can be used to talk to a target API that was created using the CreateApi message of the PbxImpersonationApi.

Added function PbxApiConnection.close()

  • Deletes the PbxApiConnection object programatically
  • Can be used if the application is no longer interested in using that PbxApi on that connection. 

120193 - PbxAdminApi: Added support for "External"

Added support for "External" property to PbxAdminApi

119783 - SDK docu: App Store Guide extended App Description requirements

The app description should contain at least an english version of the description text.

120351 - SDK docu: myApps Protocol fixed SetUserActivity message type

Message type for SetUserAcivity was fixed according current implementation.

119680 - SDK: Add DeleteApi message to PbxImpersonation API

Can be used to delete an impersonated API that was generated using CreateApi before.

120463 - SDK: fix memory leak on databaseprovider in C++ template

Delete Databaseprovider pointer on App termination.

120495 - SDK: JavaScript: Add AppInstance module

The AppInstance object provides information about the app service and app instance.

  • serviceId
  • serviceDns
  • name
  • domain
  • password

120669 - SDK: JavaScript: Increase maximum incoming message size in PbxApi

The message size was increased to 64K.

13r2 Service Release 10 (136338)

121579 - Fixed IProcess::Spawn "permission denied"

Apps can now use IProcess::Spawn too.

121163 - SDK docu: Client APIs publishing description improved

121515 - SDK: JavaScript: Add support for HTTP authentication in WebServer

WebServer.onrequest now supports setting an additional callback for HTTP authentication.

If it is set, the webserver will request HTTP authentication from clients and then ask the application for the password.

If it is not set, no HTTP authentication is done, as before.

121553 - SDK: JavaScriptRuntime: Parsing APIs in config.json did not work in some cases

There was a bug in parsing the "apis" section in the config.json.

Parsing stopped on the first non-object. So placing the "presence" and "hidden" flags before objects representing an API led to the API being ignored.

121524 - WebserverPlugin: redirect dynamic password request to the user for the registered path

The request for a user name and passowrd (in case that dynamic authentication is activated) will now be redirected to the user object which is connected to the requested resource path. If no user is assigend to, a fallback to the default user of the webserver plugin will be used.

13r2 Service Release 11 (136345)

122934 - SDK: fix missing PBX manager plugin icon in C++ template

Fixed case sensitve filename of the icon.

13r2 Service Release 12 (136349)

124430 - SDK: JavaScript: Add possibility to get MAC address of AP

Network.macAddress() now returns the MAC address of the App Platform.

13r2 Service Release 13 (136357)

124636 - Devices Protocol: Added description for GetDeviceConfigs and GetDeviceConfig messages

124581 - HTTPClient: certain Send call combination might result in a trap

Calling Send within HTTPClientSendResult again resulted in a trap.

126307 - JavaScript Runtime: PbxApiConnection object extended by the info property

The info property contains inforamtionof the App Object from which the AppWebsocket connection was established.

126282 - SDK docu: App Store Guide updated regarding V13r3 beta App Store App

The App Store Guide refers now to V13r3 beta release of the App Store App.

125725 - SDK docu: Client APIs tutorial extended by User Infos

Added example on accessing user infos in the client model.

126372 - SDK docu: fixed example for Service Lic usage

JavaScript App Service usage example was not complete.

125307 - SDK docu: fixed typos in JavaScript Runtime

Among other typos fixed example for apis definition.

125722 - SDK docu: PbxTableUsers added description for the pseudo property

Enables filtering on object type.

125015 - SDK docu: Service License description added to Licensing

The license type Service documented.

124606 - SDK docu: sysclient configuration message description updated

Configuration message relationship to the 3rd party provisioning apps explained.

124641 - SDK: Add GetPbxLicenses message to PbxAdmin API

GetPbxLicenses returns information about all local PBX licenses of the PBX from which the AppWebsocket connection was established.

125838 - SDK: app filelist added to release builds

The filelist required for the App Store releases is generated while creating a release build

125825 - SDK: manufacturer prefix for release builds

Release builds of the apps created with build-release.bat now contain the manufacturer prefix in the binary filename.

13r2 Service Release 14 (136373)

126690 - App Files: Documentation for Files Api

127570 - JS SDK: Database: Support for double values in SQL results

Before the fix, numerical values from the database were erroneously casted to an integer.

That prevented the usage of larger numbers than 2147483647.

126909 - JS SDK: Fixed crash if Timers.clearInterval was called inside callback of the interval

Clearing an interval inside the callback led a a crash, that is fixed now.

13r2 Service Release 15 (136377)

127140 - SDK docu: CheckAppLic added to Licensing

Added description of possibility to check licenses from App Service in cases where no AppWebsocket connection is available.

13r2 Service Release 16 (136383)

129633 - JS SDK: Fix example for JsonApiConnection.unlicensed

The old example did not show the usage of the unlicensed attribute but the onmessage callback.

129276 - JS SDK: Webserver: Add support for incoming websocket connections

We added a function WebServer.onwebsocket that can be used to handle plain Websocket connections (without the AppWebsocket protocol).

Text and binary messages are supported.

129726 - SDK: Added testmode property to the "info" object of the AppLogin message

The "testmode" is set to true if the PBX is running in the Test Mode.

13r2 Service Release 17 (136386)

132039 - DBFiles: do not crash if encrypted files are retrieved without a configured encryption key

13r2 Service Release 18 (136390)

132374 - SDK docu: added description for the info object of the AppLogin message

Added detailed description for the properties and an example JSON object.

133149 - SDK docu: ConfigContext Start function description updated

Extended description for the Start function usage on returned Task by CreateInitTask.

133145 - SDK docu: Fixed link to the JavaScript Runtime description

Link to the APIs definition in the JavaScript Runtime was broken.

133435 - SDK docu: Generic App description updated

Fixed typos, added dbfiles POST requirement for folder id.

132325 - SDK: added PbxAdminApi GetLocation function

The GetLocation function of the PbxAdminApi can be used to retrieve components of the WebSocket URI that can be used to establish a connection to specific PBX.

133474 - SDK: added support for Name OID in Postgresql

Columns with OID 19 "Name" were not mapped correctly in the SqlRow message of the generic app.

13r2 Service Release 19 (136395)

135287 - SDK docu: Added "h323" property description to the GetObject message of the PbxAdminApi

The "h323" property can be used instead of "guid" or "cn" to identify an object.

133113 - SDK docu: AppService and AppInstance description added to Common

135198 - SDK docu: Licensing tutorial extended

Added additional examples and dummy licenses

135333 - SDK: JavaScript Environment stopped on missing "name" property in the database table definition

Missing "name" property in the database table definition in the config.json file was causing stopped further interpretation of the database table definitions.

121947 - SDK: JavaScript: Content-Length support in HTTP client for POST requests

Before, only chunked encoding was supported for the body of POST and PUT requests.

This fix adds a function HttpRequest.contentLength that can be used to set the Content-Length.

13r2 Service Release 19 (136395)

13r2 Service Release 20 (136401)

137212 - C++ SDK: WewbserverPlugin set StatusCode - Merge to 13r3 and 13r2

138475 - Clarified IHTTPClient::Connected function in documentation

True, if the HTTP client is connected, else false. This just reflects the socket connection state and does not mean, that there is not a socket connect already running!
You can use this function for debugging purposes but not for a state machine!

137366 - JS SDK: Add SmtpClient

We added a new library for sending emails from JS app services.

137924 - PostgreSQL: fixed possible deadlock after a DatabaseError with multiple parallel transactions

If a transaction was rolled back due to a database error and further transactions were waiting, the database implementation might got stuck.

137037 - SDK: build-release.bat produced unnecessary whitespace in the files

An unnecessary whitespace in the filelist file caused problems with the App Store.

13r2 Service Release 21 (136409)

140740 - SDK docu: Extended JSON Library description

Explanation for the required certain order on adding of the  properties is added.

139917 - SDK: AppWebsocket Connection function sendSrcMore handling of "more" property set to 1

The sendSrcMore function was stopping to make subsequent requests if "more" property was set to 1.

140738 - SDK: Fix PBX manager plugin code in the App templates

Fixed possible unnecessary double assignement of the function body.

13r2 Service Release 22 (136416)

141383 - ICommand read/write with unblocking IO

Previously used function fwrite/fread seem to hang in unknown circumstances if the running process crashed/exited.

Now read/write are used instead on non blocking file descriptors to avoid this.

142045 - SDK docu: RCC UserEnd description added

The description was missing.

13r2 Service Release 23 (136420)

144058 - JS SDK: Added bytea hex support to Database Library

Enable queries on tables that contain columns with the bytea hex data type.

145351 - JS SDK: WebServer: Allow setting arbitrary status codes and texts in WebServerRequest.sendResponse

req.sendResponse(418, "I'm a teapot");

Nore: For the full functionality the current version of the Webserver must be installed on the App Platform. Older versions only support a subset of status codes and ignore the given status text.

144063 - SDK docu: Encoding Library typos fixed

Various typos fixed.

144065 - SDK docu: Webserver Library typos fixed

Various typos fixed.

144364 - SDK: Fixed default value for WebServerUrl in JavaScript Runtime

A slash separating the hostname and the instance path was missing.

144357 - SDK: Fixed file name in HTTP GET response from DbFiles of JavaScript Runtime

Sometimes the file name in the Content-Disposition header was corrupted.

144086 - SDK: HTTP POST to DbFiles shold have name parameter

HTTP POST requests to DbFiles in JavaScript Runtime are now rejected, if no filename was provided.

13r2 Service Release 24 (136422)

13r2 Service Release 25 (136429)

146977 - lib1: Disable usage of alert(), prompt() and confirm() in apps

Those functions display a modal dialog that stop the execution of the whole browser window until the user clicks a button.

Therefore they must never be used in an app. To enforce that, we re-defined those functions to show a warning in the console, instead.

147377 - SDK docu: Fixed typos in Services API

Varios typos fixed.

13r2 Service Release 26 (136432)

149248 - JS SDK: AppWebsocketClient: Fix buffer sizes

Recieved WebSocket messages can be up to 64KB (WS_MAX_DATA_SIZE). But the AppWebsocketClient only handled messages up to 32KB.

13r2 Service Release 27 (136433)

152127 - http_client: HTTP result should be reset with new requests

There was a problem, when multiple successive HTTP requests were done using the same HTTP client.

After starting a new request, GetHttpResult() could return information that was related to the previous request.

150213 - SDK: HTTP client: Support for all methods


Also it is possible to send a request body and receive a response body for all methods, now.

The new functionality is available for both C++ App Serivces using IHTTPClient and JS App Services using HttpClient.

123803 - SDK: JS Runtime: Support for wildcards in eval array in config.json

You can execute all JS files in a subtree of the This can be done by using wildcards in entries of the javascript.eval array in the config.json.


eval : [




13r2 Service Release 29 (136444)

155359 - HTTPClient: wrong timeout shutdown for authenticated connections which last longer than the used timeout

This e.g. caused failing backups with HTTP PUT which last longer than one minute.

13r2 Service Release 30

157331 - SDK: Corrected the name of the USocket::SocketRecvFromResult() parameters. Must be srcAddr, srcPort.

13r2: End of life