ReleaseNotes13r2:SDK
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
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 httpfiles.zip
- 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:
JsonApiConnection.send
PbxApiConnection.send
WebserverRequest.send
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
C++
const char * IJsonApiConnection::JsonApiInfo()
JavaScript
JsonApiConnection.info
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
Example:
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
Now the supported HTTP methods are: GET, PUT, POST, DELETE, HEAD, OPTIONS, TRACE, PROPFIND, MKCOL, COPY, MOVE, LOCK, UNLOCK, PROPPATCH, PATCH.
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 httpfiles.zip. This can be done by using wildcards in entries of the javascript.eval array in the config.json.
Example:
eval : [
"subfolder/*",
"service.js"
]
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.