Tigase JaXMPP Client Library: Tigase JaXMPP Client v3.2.0 Relase

Added by Wojciech Kapcia TigaseTeam 3 months ago

Tigase JaXMPP v3.2.0 has been released! Below are full details of changes included in this version.

New Features:

  • #4369: Support for XEP-0313: Message Archive Management has now been added within Jaxmpp-MAM module.
  • Implementation of XEP-0357: Push Notifications
  • SCRAM-SHA-1 and SCRAM-SHA-1-PLUS are now enabled by default for Authorization.
  • #4280: added support for XEP-0352: Client State Indication
  • #5950: added support for XEP-0363: HTTP File Upload
  • #5223: in-band registration to use XMPP Data Forms XEP-0004
  • #4288: Login and Disconnect methods have been changed in blocking mode.
  • #4398: Removed JDK8 specific features not supported by GWT to prevent errors.
  • #4762: added support for handling WebSocket PONG frames
  • #7387: added support for PubSub notifications about node removal and association/dissociation to the collection node


  • #4317: fixed NPE if receiver of file transfer is not connected or disconnected in SOCKS5.
  • #4318: added checking if destination file is set when file transfer is accepted.
  • #4378: fixed exceptions occuring when a server-initiated disconnection could lead to an invalid connector state, fix issue with invalid connector state when connecting using Websocket Protocol over TCP.
  • #8104: fixing issue with parsing timestamp
  • #8033: added thread safety to ExtensionsChain implementation
  • #2654: improve DNS resolution for local addresses
  • #7793: fixing possible NPE in UnifiedRegistrationForm when value for a fiels is null
  • #7649: improving GWT code for sites hosted on HTTPS enabled servers
  • #7525: added method for retrieving error text from error stanzas
  • #6330: fixes for AdHocCommansAsyncCallback not calling onResponseReceived() if there is no data form in the response and for ElementWrapper which failed to set GwtElement value
  • #6330: added event for notification about PubSub node configuration change
  • #6212, #6232: fixing issue introduced by recent changes in sending authcid and authzid during authentication
  • #6212: improvements to SASL implementations
  • #5749: fix issue with login to, says incorrect password, even though password is correct
  • #1590: add support for subscription pre-approval in RosterModule and RosterItem
  • #5669: removed firing ErrorEvent by connectors if exception is thrown in start() method within the same thread
  • #5624: fixed possible lock if Jaxmpp::login() method throws an exception and login(true) was called
  • #5582: fixing race condition during Jaxmpp login leading to a thread being permanently locked
  • #5584: MAM module not being called for incoming messages
  • #5588: fixed issue with messages without from causing NPE in MessegeModule
  • #5527: added support for connection using plain SSL instead of STARTTLS
  • #5529: fixed handling of see-other-host in ConnectionManager for GWT
  • #5318: added implementation for GwtElement::removeChild() method
  • #5421: fixed issue with handling PONG WebSocket frames with payload
  • #4961: fix JaXMPP problems on Android
  • #4733: fixed issue with comparision of elements with XMLNS
  • #4732: minor fix in MessageArchiveManagementModule
  • #4460: fixed issue with retrieving PubSub node configuration
  • #4728: fix minor issue with element equals() method
  • #4348: fixed issues with Jaxmpp state and reconnecting
  • #4348: changed DEFAULT_SOCKET_TIMEOUT to 0 as value bigger than zero causes issues for long connections without any activity
  • #4460: improved usage of events with callbacks called after all handlers processed event
  • #4266: fixing issue with reconnection after disconnection by client
  • #4505: fix handling of badly encoded channel binding data
  • #4398: remove used JDK8 specific features which are not supported by GWT
  • #4291: ContactChangedPresenceEvent has show "online" for unavailable presence
  • #4266: fixed issue with blocking disconnection
  • #4124: fixed issue with support for see-other-host with WebSocket in GWT version

Please visit our downloads page to obtain the new version.

Tigase XMPP Server: Tigase XMPP Server 7.1.4 Release

Added by Wojciech Kapcia TigaseTeam 3 months ago

A new stable, maintenance version of Tigase Server 7.1.4 has been released. Please review the change notes below to see what has changed since our last release.

  • #7301 Improving AMP Component performance (should use multiple processing threads)
  • #8061 Make sure that RepositoryItems are correctly stored in repository
  • #6911 Fix issue that could lead to tigase.server.BasicComponent#getDefHostName returning empty/invalid value
  • #7687 Fix issue when connections that failed to authenticate within defined timeout resulted in all connections being marked as active
  • #7687 Add configuration of active-user-count timeframe period
  • #7304 Limit VHost log line length

Due to security issues of our previous certificate provider we were forced to migrate to different provider, which in turn entailed update of our certificates. This affects installations using our ACS component - update to version 7.1.4 is required to correctly renew licence file. The update must be applied within next 6 months. After this period, outdated installations will not be able to obtain updated licence file, which may lead to shutting down the service. In case update is not possible, licence file would have to be procured and updated manually.

Please contact us as we offer full support and help with updating the software.

Download are available:

Latest results of Tigase Testsuite are available here.

Avatar?id=6023&size=24x24Tigase, Inc.: Tigase used at Cisco and Broadsoft

Added by Artur Hefczyc TigaseTeam 4 months ago

Broadsoft’s use of Tigase as part of their products is yet another example where Tigase software is integrated into Voice over IP and Internet Telephony systems. Maybe not very surprisingly most of the companies call their products “Unified Communication” or something similar. Indeed, Tigase is often used as a hub connecting users on different IM networks and different communication channels. Sometimes, this is not even for messaging at all but “just” to provide real-time presence information to VoIP systems.

For more details follow the link to the full article: Cisco and Broadsoft use Tigase software in their products

IoT One Cloud: IoT One Cloud: A Preview

Added by Daniel Wisnewski IoT 1 Cloud 8 months ago

A brief preview into what IoT One cloud is: the future of IoT. Watch and see how fast we can make an IoT enabled device with the security and reliability of XMPP!

IoT One Cloud: What will you Create?

Autonomous Obstacles Detecting Vehicle : Autonomous Robot v1

Added by Pawel Zaborny 8 months ago

After few weeks of work connection between two most important parts of the project are ready to be shown. This is the first step introducing robot into an autonomous driving mode.

So far the goal was to create movement control and vision system able to recognize objects and move with respect to them. This time I want to show general features and problems related to that topic. On the first video, we can easily see how robot reacts to visible objects and tries to adjust his position and point at the single orange ball.

After seeing this video first thing that will probably come to mind is why robot decided to point at the second ball when it appeared and why after pointing at the ball is still rotating?

The answer to the first question is related to the algorithm which process video stream. It tries to find the smallest rectangle which will become bounding box for the biggest detected object. So if there are two identical objects program always chooses closest and biggest one.

To explain the second question I'll present another video from a different perspective.

This time we can easily notice that robot cannot instantly aim at detected object. It's a very common issue in control theory and its called overshooting. But it's not a problem and also we can see that this error decrease over next iterations.

Another noticeable thing is how robot moves and the fact that these movements are not smooth at all. First of all our robot is not equipped with encoders that would give us information about wheel rotation. Instead of that we only receive feedback from vision system what will not provide as good accuracy as encoders. So we decided to use control system which is not typical PID controller but something closer to Kalman filter. We counted how much time does it takes for the robot to make 360-degree rotation on full throttle on deferent surfaces. And then we counted mean value of that time what is initial constant. Then we can halve that time to make 180-degree rotation or divide into 4 to make 90-degree rotation. But it's quite obvious that this value will never be exactly 180 or 90 degrees and difference of that error depends on many different factors. So another task is to make a control system that will estimate next movement count an error and adjust parameters to increase accuracy. And next add some safety features and of course, give robot capability to move toward an object.

Tigase, Inc.: IoT One Cloud: A Preview

Added by Daniel Wisnewski IoT 1 Cloud 9 months ago

A brief preview into what IoT One cloud is: the future of IoT. Watch and see how fast we can make an IoT enabled device with the security and reliability of XMPP!

IoT One Cloud: What will you Create?

Autonomous Obstacles Detecting Vehicle : Object detection deployed on Raspberry Pi

Added by Pawel Zaborny 10 months ago

This is how our first task looks like. We want the robot to detect one of this two objects and then give us a feedback about its position in the console.

As we can see that random HSV range setup doesn't give us any meaningful results. Robot convert camera view to binary representation and shows it in the right window. It's called mask and white areas represents our target. And what we can see now are our objects with tons of noise.

After adjusting saturation and value parameters we remove noises caused by reflection of sunlight captured by the camera. In the result, it gives us a clear picture of our objects. What we can see on the original camera view that program added green pointers around orange ball it's because program tries to find the biggest object from white areas in the right window and then mark them on the left window. This approach is called finding bounding boxes and was chosen due to its low complexity what doesn't cause a decrease in FPS.

At this point we still don't have defined the exact color that we want to follow. Let's say that we want to follow the yellow ball. All we need to do is to slightly adjust last parameter "hue". And that's the result. We have marked yellow ball and information about it's bounding box position is printed 30 times per second in console.

Tigase, Inc.: Update for IoT One Cloud

Added by Daniel Wisnewski IoT 1 Cloud 10 months ago

We’re hard at work on developing and bringing the world of IoT to your raspberry pi, and we’re excited to show off some of the work we’ve been doing. Today we released a video showing compatibility with an LED matrix screen. While this alone is a cool use of the technology, essentially being able to draw on the matrix to show patterns, there’s something else unseen that is being shown off in the video: Speed.The video shows both the cell phone and the Pi right next to each other, but they are communicating half a world away! The mobile device is sending commands from Poland, to a server located on the West coast of the United States, which is then sending the commands back to the raspberry pi, again in Poland. Once the led status has changed on the pi that information is published back through to the server in the West coast, and back to the cell phone. That’s over 10,000 miles of a round trip in almost as much as it takes you to blink. All this traffic secure and encrypted. IoT One Cloud from Tigase is poised to give you internet connectivity to devices you’ve never thought could be controlled, or deliver information over the web. What will you create?

Avatar?id=6023&size=24x24Tigase, Inc.: Security notification and confusing emails

Added by Artur Hefczyc TigaseTeam 11 months ago

Many of our users and customers received email notifications from our system about changes to their accounts, such as email change and other information.

After investigation it turns out these email were generated by our development system on which the team decided to change all users’ email to avoid spamming them with unwanted email notifications which could have been generated during testing new features.

Unfortunately this resulted in the exact thing we tried to avoid. Flood of emails notifying our users and customers about changes to their accounts.

We are very sorry for the inconvenience and confusion and unnecessary emails.

The good thing is that there is nothing to worry about, accounts are not hacked or compromised.


Also available in: Atom