Reference13r1:Release Notes SDK
From innovaphone-wiki
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 "com.innovaphone.phone".
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 "com.innovaphone.phone".
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 com.innovaphone.phone
* 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
REST API using GET, PUT and DELETE
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
Example:
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
<--
sysclient.htm
devices.htm
reference.htm
-->
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:
appname.cpp:
- 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"));
apps/company.appnamemanager.js:
- plugin.company.appnamemanager 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
apps/company.appnamemanagertexts.js:
- 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">